Alier.Native.createNotification()
引数で与えられた、通知の契機、通知情報で通知の作成(登録)を行います。
この関数は非同期関数です。
構文
Alier.Native.createNotification(payload,trigger) => Promise<object>
引数
-
payload
: object
通知情報をまとめたオブジェクトです。 -
trigger
: object
通知契機の内容をまとめたオブジェクトです。
返値: Promise<object>
契機毎に登録した通知の管理識別子をPromise<object>
として返します。
受け取った管理識別子は再発行されないため、別途永続的に保存するなど、適切に管理する必要があります。
//タイマ契機だけを登録した場合の結果
{
timer: "通知ID"
}
//カレンダ契機だけを登録した場合の結果
{
calendar: "通知ID"
}
//タイマ契機とカレンダ契機の両方を登録した場合の結果
{
timer: "通知ID",
calendar: "通知ID"
}
例
//通知情報
const payload = {
title:`タイトル`,
message:"メッセージ",
manageId:"test",
data:{
"sample":"通知に渡すパラメータ"
},
badge:1,
image:"app_res/images/sample_image.png",
icon: "sample_icon"
}
//通知契機
const trigger = {
timer:{
seconds:10,
repeat:false,
},
calendar:{
year:2025,
month:4,
day:23,
hour:16,
minute:21,
second:15
}
}
const reslut = await Alier.Native.createNotification(payload,trigger);
console.log(reslut);//{timer: "test__alier__xxxx1", calendar: "test__alier__xxxx2"}
解説
ペイロードおよび契機の設定項目について
ペイロードの指定方法
通知で送る本文やタイトル・設定などの通知情報を、object形式でまとめたデータのことです。以下の項目を設定できます。
表1. ペイロード設定項目
項目名 | 型 | 説明 |
manageId | String | 通知を管理するために使用する。入力必須項目です。 |
title | String | 通知に表示するタイトル。 |
message | String | 通知に表示するメッセージ。 |
image | String | 通知に表示する画像のパス。 |
sound | String | 通知音。未指定の場合はOSごとのデフォルトの通知音が鳴ります。 |
badge | Number | アプリアイコンに表示するバッジ。 |
icon | String | 通知用アイコンのパス。 |
data | Object | 通知に添付する任意のデータ。 |
補足
-
manageId: ネイティブ側で通知の作成を行う際に、この値を用いて「通知の識別子」を生成します。この値がそのまま通知の識別子となるわけではありません。
-
sound: 通知音を設定します。未指定の場合はOSごとのデフォルトの通知音が鳴ります。今後対応予定の機能です。
-
image: ローカルストレージ内にある画像リソースのパスを指定できます。
-
badge: アイコンに表示する数字を指定できます。
-
icon: 通知バナー用のアイコンに使用するリソースのパスを指定できます。Android側のみ指定可能です。
-
data: 通知バナータップ時にイベントハンドラを通じて取得することができます。
契機の指定方法
-
契機の指定情報をobject形式でまとめたデータのことです。以下の項目を設定できます。
note契機設定は、モバイル側のローカルPush通知のみ対応しています。
タイマ契機について
表1. タイマの契機名
項目名 | 型 | 説明 |
timer | Object | タイマでの通知を指定するための契機名です。 |
表2. timerオブジェクト配下に追加できる項目
項目名 | 型 | 説明 |
seconds | Number | 通知を表示するまでの時間を指定します。 単位:秒 |
repeat | Boolean | 「seconds」で指定した間隔で繰り返し通知を行うかどうかのフラグです。 |
カレンダ契機について
表1. カレンダの契機名
項目名 | 型 | 説明 |
calendar | Object | 日付での通知を指定するための契機名です。 |
表2. カレンダオブジェクト配下に定義できる項目
項目名 | 型 | 説明 | 補足 |
year | Number | 通知を行う年(西暦:YYYY) | |
month | Number | 通知を行う月(1~12) | |
day | Number | 通知を行う日にち(1~31) | |
hour | Number | 通知を行う時刻(時) | 入力必須項目です。 |
minute | Number | 通知を行う時刻(分) | 入力必須項目です。 |
seconds | Number | 通知を行う時刻(秒) | Numberで指定します。 |
weekday | Number | 通知を行う曜日(1:日曜、 2:月曜、... 7:土曜) | 1つだけ指定が可能です。またrepeatType: week の時のみ有効です。 |
weekOfMonth | Number | その月の第何週かを示す。 | 1つだけ指定できます。 例: 毎月第2土曜なら 「2」を指定します。(repeatType: week の時のみ有効) |
repeatType | Number | 指定のタイミングで繰り返し通知を行いたい場合に「繰り返しの種類」を1つだけ指定できます。 | 「繰り返しの種類」は別表に記載。 |
adjustEndOfMonth | Number | 月末のズレを自動調整するかどうかを指定が可能です。 | 例: trueにすると、31日がない月は30日 or 28日に通知が行われます。 |
・「weekday」「weekOfMonth」「repeatType」をまとめて指定することはできません。(複数指定されている場合は、repeatTypeが優先されます。)
・「repeatType」に、「week」あるいは「weekOfMonth」が指定されている場合、以下の指定が無視されます。
- 「year」
- 「month」
- 「day」
・「weekday」の指定について以下の場合は無視されます。
- 「repeatType」が指定されていない。
- 「week」,「weekOfMonth」以外が指定されている。
表3. repeatTypeの指定項目名について
項目名 | 説明 | 使用するカレンダオブジェクトの項目 |
year | 年単位での通知。 毎年、指定の月・日付・時刻に対して通知を出す。 | month, day, hour, minute, second adjustEndOfMonth |
month | 月単位での通知。 毎月、指定の日付・時刻に通知を出す。 | day, hour, minute, second, adjustEndOfMonth |
day | 日にち単位での通知。 毎日、指定の時刻に通知を出す。 | hour, minute, second |
week | 週単位での通知。 毎週、指定の曜日・時刻に通知を出す。 | weekday, hour, minute, second |
weekOfMonth | 月内の週単位での通知。 毎月、指定の週において曜日・時刻に通知を出す。 | weekday, weekOfMonth, hour, minute, second |
-
繰り返しの指定項目に対して、使用する値が未定義である場合:
-
通知の登録は行われず、エラー扱いとなります。
-
(例)repeatTypeでyearを指定しているが、monthが未定義の場合: 通知の登録は行われず、エラー扱いとなります。
-
カレンダトリガー補足
-
通知の優先評価順位
時刻 > repeatで使用する値 > 年月日 > 曜日 > その他(weekOfMonth ,adjustEndOfMonth)
-
表1. ケース別の定義例
ケース 使用するカレンダオブジェクトの項目など 特定の日時に1回だけ通知 year, month, day, hour, minute,second 毎年同じ日(例: 毎年1月1日) month, day, hour, minute,second repeatType=year 毎月同じ日(例: 毎月10日) day, hour, minute,second repeatType=month 毎週同じ曜日(例: 毎週月曜10時) weekday, hour, minute,second repeatType=week 毎日同じ時間(例: 毎日8:30) hour, minute,second repeatType=day
(例)
- 「2025/03/21 11:30:00 の金曜日」に1回だけ通知を出したい場合
calendar:{ { year: 2025, month: 3, day: 21, hour: 11, minute: 30 seconds: 0 } }
- 金曜日に1回だけ通知を出したい場合。
//「時刻」として「11:30:00」、 「weekday」に金曜日を指定する。 calendar:{ { hour: 11, minute: 30 seconds: 0, weekday: 6 } }
特定の日時から繰り返し通知を行いたい場合は、直接の指定はできません。そのため2段階に分けて行うなど工夫が必要となります。
- 「2025/03/21 11:30:00から毎週金曜日」に繰り返したい場合。
- 「2025/03/21 から毎週金曜に通知」するための直接的な方法がないため以下の方法で、通知を登録することになります。
- 方法1
- (1)特定の日時に1回だけ行う通知を登録する。
(例)「2025/03/21 11:30:00 の金曜日に1回出す通知」を登録する。 - (2)(1)の通知がきたタイミングで、指定の繰り返しを行う通知を登録する。 (例)「毎週金曜日に出す通知」を登録する。
- (1)特定の日時に1回だけ行う通知を登録する。
- 方法2
- 「2025/03/20の11:31」以降に以下のような形で契機を登録する。
calendar:{ { hour: 11, minute: 30, seconds: 0, weekday: 6, repeatType: "week" } }
- 「2025/03/20の11:31」以降に以下のような形で契機を登録する。
- 方法1
- 「2025/03/21 から毎週金曜に通知」するための直接的な方法がないため以下の方法で、通知を登録することになります。