Alier.Native.createNotification()

引数で与えられた、通知の契機、通知情報で通知の作成(登録)を行います。
この関数は非同期関数です。

構文

Alier.Native.createNotification(payload,trigger) => Promise<object>

引数

  • payload: object
    通知情報をまとめたオブジェクトです。

  • trigger: object
    通知契機の内容をまとめたオブジェクトです。

返値: Promise<object>

契機毎に登録した通知の管理識別子をPromise<object>として返します。

note

受け取った管理識別子は再発行されないため、別途永続的に保存するなど、適切に管理する必要があります。

//タイマ契機だけを登録した場合の結果
{
    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日に通知が行われます。
note

・「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
note
  • 繰り返しの指定項目に対して、使用する値が未定義である場合: 

    • 通知の登録は行われず、エラー扱いとなります。

    • (例)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
          }
      }
note

特定の日時から繰り返し通知を行いたい場合は、直接の指定はできません。そのため2段階に分けて行うなど工夫が必要となります。

  • 「2025/03/21 11:30:00から毎週金曜日」に繰り返したい場合。
    • 「2025/03/21 から毎週金曜に通知」するための直接的な方法がないため以下の方法で、通知を登録することになります。
      • 方法1
        • (1)特定の日時に1回だけ行う通知を登録する。
          (例)「2025/03/21 11:30:00 の金曜日に1回出す通知」を登録する。
        • (2)(1)の通知がきたタイミングで、指定の繰り返しを行う通知を登録する。 (例)「毎週金曜日に出す通知」を登録する。
      • 方法2
        • 「2025/03/20の11:31」以降に以下のような形で契機を登録する。
          calendar:{
            {
                hour: 11,
                minute: 30,
                seconds: 0,
                weekday: 6,
                repeatType: "week"
            }
          }