Web SDK API
認証
開発者が初期化を実行する場合、必要な情報を渡す必要があります。このデータ構造は開発者サーバーによって生成され、ブラウザに返送され、開発者がブラウザに実行を許可するMTpush初期化に使用されます。開発者は、このデータを取得するために呼び出すことができるすべてのユーザーが正当なユーザーであることを保証する必要があります。
初期化データ構造
interface MTInitInfo {
website_push_id: string;
code: number;
master_secret: string;
passwd: string;
pull: number;
regid: string;
sess: string;
tagalias: number;
uid: number;
vapid_pubkey: string;
}
type dataType = {
code: number,
content: string,
message: string,
};
interface InitType {
appkey: string; //オーロラプラットフォームで開発者が登録したアプリケーションappkey、必須
user_str: string; //ユーザー固有ID、必須
swUrl?: string; //デフォルト "/sw.min." + sdkEnv.version + ".js"
debugMode?: boolean; //デフォルト false,
webSocketUrl?: string; //存在しない場合はbaseUrlを使用
fail?: (data: dataType | undefined) => void; //初期化失敗コールバック
success?: (data: dataType | undefined) => void; //初期化成功コールバック
webPushcallback?: def;
canGetInfo?: (d: MTInitInfo) => void;
custom?: (Callback: () => void) => void; //カスタムプロンプトが利用可能な場合のコールバック、操作完了後にCallbackを呼び出して適用
}
同じスコープ内では1つのサービスワーカーのみ登録できます。初期化成功時に「'subscribe' on 'PushManager' の実行に失敗しました: サブスクリプションに失敗しました - アクティブなService Workerがありません」のようなエラーが報告された場合は、他のサービスワーカーとの競合を確認してください。サービスワーカーを統合するか、サービスワーカーのスコープを解決する必要がある場合があります。
SDK初期化
インターフェース説明
インターフェースを初期化します。
window.MTpushInterface.init(Object:InitType)
パラメータ説明
- 詳細については、[InitTypeの説明](/zh_CN/docs/web-push/sdk/web-sdk-api#Initialize data structure)を参照してください。
- コールバックオブジェクトデータの説明:
パラメータ名 | パラメータ型 | パラメータの説明 |
---|---|---|
code | number | 戻りコード、0は成功を意味し、その他は失敗を意味します。[エラーコード](#error code)を参照してください |
message | string | 結果の説明 |
content | string | 登録に失敗した場合(1003)に失敗メッセージを返します |
呼び出し例
MTpushInterface.init({
appkey: "xxx",
user_str: "adminDemo",
fail(data) {
console.log("オンラインプッシュの作成に失敗しました", data);
},
success(data) {
console.log("オンラインプッシュの作成に成功しました", data);
},
webPushcallback(cod, tip) {
console.log("ユーザーが取得した状態コードとプロンプト", code, tip);
},
//swUrl?: string; //デフォルト "/sw.min." + sdkEnv.version + ".js"
canGetInfo(d) {
//この時点で、RegIdを取得するか、dのすべてのデータを取得できます
console.log("RegIdを取得", MTpushInterface.getRegistrationID(), d);
// MTpushInterface.setTagsAlias({ tags: ["test1", "test2"], alias: "swefgwwefwfwfwf" });
},
custom: (reqPermission) => {
//カスタムプロンプト設定を使用する場合は、reqPermissionを呼び出して権限を要求して設定する必要があります。カスタムコールバックで権限要求関数を取得し、適切なタイミングで直接reqPermissionを呼び出して通知権限を要求します。
document.getElementById("xx")?.addEventListener("click", reqPermission); },
});
RegistrationIDの取得
インターフェース説明
このAPIを呼び出して、現在のアカウントに対応するRegistrationIDを取得します。初期化署名が成功した後にのみ対応する値が返され、それ以外の場合は空の文字列が返されます。このメソッドはcanGetInfoコールバックがトリガーされた後に呼び出す必要があります。
window.MTpushInterface.getRegistrationID()
呼び出し例
var rid = window.MTpushInterface.getRegistrationID();
プッシュの停止
このAPIを呼び出して、バックグラウンドと確立されたプッシュ永続接続を切断し、プッシュメッセージの受信を停止します。
window.MTpushInterface.mtPush.stopPush()
プッシュメッセージの監視
インターフェース説明
初期化の前にメッセージリスナーを呼び出すことを推奨します。
window.MTpushInterface.onMsgReceive(fn)
パラメータ説明
パラメータ名 | パラメータ型 | パラメータの説明 |
---|---|---|
fn | function | メッセージ受信と処理関数 |
呼び出し例
window.MTpushInterface.onMsgReceive(function (res) {
if(res.type===0){
// res.data.messages[]
// res.data.messages[].msg_id
// res.data.messages[].title
// res.data.messages[].content
// res.data.messages[].extras
}else{
// res.data.title
}
});
戻りデータ
パラメータ名 | パラメータ型 | パラメータの説明 |
---|---|---|
type | number | |
data | Object | メッセージコンテンツ |
Engagelabチャネルメッセージ配列(messages)
パラメータ名 | パラメータ型 | パラメータの説明 |
---|---|---|
msg_id | string | メッセージID |
title | string | メッセージタイトル |
content | string | メッセージコンテンツ |
extras | Object | メッセージ追加フィールド |
システムチャネルメッセージデータ
w3cインターフェースNotificationOptionsをサポートしています。詳細についてはmdn web docsを参照してください。
プッシュサービス状態の確認
window.MTpushInterface.getPushAuthority()
戻されるデータ構造は次のとおりです:
{
mtPush: {
code:1, //1は成功、-1は初期化中、0は失敗
msg:'success'
},
webPush: {
code:1, // 0 webpushは使用不可(ブラウザがサポートしていません)1は使用可 2権限が無効 3権限が確認されていません
msg:'success'
}
}
ブラウザ通知権限の取得
window.MTpushInterface.getWebPermission()
戻りパラメータの説明
- granted : 使用可
- denied : 無効
- default: 権限が確認されていません
カスタムメッセージデータのレポート
カスタムメッセージのデータ統計を行う必要がある場合は、カスタムレポートインターフェースを使用してデータをレポートしてください。
window.MTpushInterface.customClickReport('msg_id');//msg_idはカスタムメッセージのmsg_idです
切断監視
インターフェース説明
初期化が成功した後に切断が発生した場合、SDKは自動的に再接続と署名を試みます。 初期化の前にこのイベントリスナーを呼び出すことを推奨し、このイベントを受信した後に再度初期化を呼び出してください。
window.MTpushInterface.mtPush.onDisconnect(fn)
呼び出し例
window.MTpushInterface.mtPush.onDisconnect(function () {
});
ブラウザサブスクリプションのキャンセル
通知のサブスクリプションを解除します。一部のアカウントのプライバシーレベルが高い場合、アカウントをログアウトするときに通知を受信する必要がない場合にこのメソッドを使用できます。
MTpushInterface. unSubscribe();
TagsAliasの設定
window.MTpushInterface.setTagsAlias({})
MTpushInterface.setTagsAlias({ tags: ["test1", "test2"], alias: "aliass" });
パラメータ説明
パラメータ名 | パラメータ型 | パラメータの説明 |
---|---|---|
tags | string[] | 必須、配列の最大長は1000、各要素の最大長は40文字 |
alias | string | 必須、最大40文字 |
インターフェース説明
開発者はこのインターフェースを通じて特定のエイリアスの下にタグを設定および削除できます。このインターフェースはオーバーレイロジックです。通知が空の文字列に設定されている場合、既存のタグを削除できます。
カテゴリプロンプトの複数表示
window.MTpushInterface.promptPushCategories();
インターフェース説明
ユーザーがプッシュ通知をサブスクライブした後、開発者は必要に応じてカテゴリプロンプトを複数回表示できます。これはSDKの初期化後に呼び出す必要があります。
プッシュメッセージ表示コールバック
インターフェース説明
初期化の前にメッセージリスナーを呼び出すことを推奨します。
呼び出し例
window.MTpushInterface.onMsgDisplay((msgData) => {});
パラメータ説明
通知メッセージコールバックパラメータmsgData
の説明:
{
title: string;
content: string;
msg_id: string;
ntf_or_msg: number;
engagelab_appkey: string;
engagelab_passwd: string;
engagelab_uid: string;
engagelab_url: string;
type: string; // 0: Engagelabチャネルメッセージ 1: システムチャネルメッセージ
}
アプリ内メッセージコールバックパラメータmsgData
の説明:
{
title: string;
content: string;
msg_id: string;
ntf_or_msg: number;
type: string;
}
注:
アプリ内メッセージのHTML編集モードでは、コールバックパラメータ
title
とcontent
は空の文字列です。Safariブラウザのシステムチャネルを介して配信されたメッセージは、表示コールバックを受信できません。
プッシュメッセージクリックコールバック
インターフェース説明
初期化の前にメッセージリスナーを呼び出すことを推奨します。
呼び出し例
window.MTpushInterface.onMsgClick((msgData) => {});
パラメータ説明
通知メッセージコールバックパラメータmsgData
の説明:
{
title: string;
content: string;
msg_id: string;
ntf_or_msg: number;
engagelab_appkey: string;
engagelab_passwd: string;
engagelab_uid: string;
engagelab_url: string;
position: string; // クリック位置、'msgBody' | ボタンID
type: string; // 0: Engagelabチャネルメッセージ 1: システムチャネルメッセージ
}
アプリ内メッセージコールバックパラメータmsgData
の説明:
{
title: string;
content: string;
msg_id: string;
ntf_or_msg: number;
position: 'msgBody' | 'mainBtn' | 'subBtn' | 'closeBtn';
type: string;
}
注:
- アプリ内メッセージのHTML編集モードでは、
position
の値は開発者によって決定され、コールバックパラメータtitle
とcontent
は空の文字列です。- Safariブラウザのシステムチャネルを介して配信されたメッセージは、クリックコールバックを受信できません。
エラーコード
コード | メッセージ | 備考 |
---|---|---|
0 | success | 呼び出し成功 |
1000 | unknown error | 不明なエラー |
1001 | initing , please try again later | 初期化中、後で再試行してください |
1002 | invalid config | 初期設定エラー |
1003 | init failed | 初期化に失敗しました、詳細についてはコンソールの出力を参照してください |
1004 | init timeout | 初期化タイムアウト |
1005 | network error | ネットワークエラー、ネットワークがないかwebsocketに接続できません |