コンテンツにスキップ

初期化

SDK実行キーとドメインをRichFlyerに登録

RichFlyerより発行されるSDK実行キーとドメインを登録し、通知許可の確認、Service Workerの登録、購読情報の登録を行います。
ユーザーが「通知を受け取る」などのボタンを操作したタイミングで呼び出してください。
RichFlyerライブラリ(rf-functions.js)を使用します。

//rf-functions.js
rf_init(rfServiceKey, domain)
パラメータ 内容
rfServiceKey SDK実行キー
domain 通知を受信するサイトのドメイン
戻り値 "granted"(許可)、"denied"(拒否)、"default"(確認画面を閉じた)のいずれか。Web Push非対応環境では undefined

Safari独自プッシュはサポート終了

v2.5.0では、macOS 12以前向けのSafari Push Notifications(Website Push ID/APNs証明書)は利用できません。旧実装との互換性のため第3・第4引数は渡してもエラーになりませんが、値は使用されません。macOS 13 / Safari 16以降およびiOS/iPadOS 16.4以降は、標準Web Pushとして第1・第2引数だけで実装してください。

iOSとmacOSでの実行タイミングについて

ユーザーのアクションを介して実行します。例えば、「プッシュ通知を受信する」というボタンを設置して、ユーザーがタップしたときに実行します。
ページの読み込み時に自動で実行するとエラーになります。

Info

SDK実行キーは管理サイトのサービス管理画面より取得できます。


Example
function initialize() {
    rf_init(
        "11111111-aaaa-bbbb-cccc-dddddddddddd",
        location.hostname
    ).then((result) => {
        if (result === "granted") {
            // 通知登録が許可された場合の処理
        }
    }).catch((error) => {
        // RichFlyer APIのエラーでは error.status / error.code / error.apiMessage を参照可能
        console.error(error);
    });
}

カスタムポップアップダイアログ

初期化を行うと、ウェブブラウザがプッシュ通知の受信の許諾を求めるメッセージを表示します。
RichFlyerでは、このメッセージを表示する前に独自のポップアップダイアログを表示することができます。
プッシュ通知を受信することのメリットをユーザーに訴求することで許諾率を向上させることができます。

Google Chromeが表示するメッセージ

カスタムポップアップの種類

カスタムポップアップは、normal・center・bar の3種類があります。

種類 イメージ(PC) イメージ(スマホ)
normal
center
bar

実装方法

//rf-functions.js
rf_init_popup(rfServiceKey, domain, null, popupSettingValue)
パラメータ 内容
rfServiceKey SDK実行キー
domain 通知を受信するサイトのドメイン
第3引数 互換性用の予約引数。v2.5.0では常に null を指定してください。
popupSettingValue ポップアップダイアログの情報
const popupSettingValue = {
    type:         {string} ポップアップの種類(normal || bar || center)
    message:      {string} メッセージ
    img:          {string} イメージファイル
    cancelButton: {string} 通知拒否ボタン名
    submitButton: {string} 通知許可ボタン名
}

Info

SDK実行キーは管理サイトのサービス管理画面より取得できます。

Info

rf_init_popup()を実行した場合は、rf_init()の実行は不要です。

Example
function initialize_popup() {
    // ポップアップダイアログ情報
    const popupSettingValue = {
        type:         "center",
        message:      "プッシュ通知でお得な情報をお届けします!!ぜひ「受け取る」をクリックして通知の許可をお願いします。",
        img:          "./img/notification.jpg",
        cancelButton: "キャンセル",
        submitButton: "受け取る"
    }

    // ポップアップダイアログを表示
    rf_init_popup(
        "11111111-aaaa-bbbb-cccc-dddddddddddd",
        location.hostname,
        null,
        popupSettingValue
    );
}