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を呼び出して適用 }
              
              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)
              
              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); }, });
              
              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()
              
              window.MTpushInterface.getRegistrationID()

            
このコードブロックはフローティングウィンドウ内に表示されます

呼び出し例

var rid = window.MTpushInterface.getRegistrationID();
              
              var rid = window.MTpushInterface.getRegistrationID();

            
このコードブロックはフローティングウィンドウ内に表示されます

プッシュの停止

このAPIを呼び出して、バックグラウンドと確立されたプッシュ永続接続を切断し、プッシュメッセージの受信を停止します。

window.MTpushInterface.mtPush.stopPush()
              
              window.MTpushInterface.mtPush.stopPush()

            
このコードブロックはフローティングウィンドウ内に表示されます

プッシュメッセージの監視

インターフェース説明

初期化の前にメッセージリスナーを呼び出すことを推奨します。

window.MTpushInterface.onMsgReceive(fn)
              
              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 } });
              
              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
  • 0: Engagelabチャネルメッセージ
  • 1: システムチャネルメッセージ
  • data Object メッセージコンテンツ

    Engagelabチャネルメッセージ配列(messages)

    パラメータ名 パラメータ型 パラメータの説明
    msg_id string メッセージID
    title string メッセージタイトル
    content string メッセージコンテンツ
    extras Object メッセージ追加フィールド

    システムチャネルメッセージデータ

    w3cインターフェースNotificationOptionsをサポートしています。詳細についてはmdn web docsを参照してください。

    プッシュサービス状態の確認

    window.MTpushInterface.getPushAuthority()
                  
                  window.MTpushInterface.getPushAuthority()
    
                
    このコードブロックはフローティングウィンドウ内に表示されます

    戻されるデータ構造は次のとおりです:

    { mtPush: { code:1, //1は成功、-1は初期化中、0は失敗 msg:'success' }, webPush: { code:1, // 0 webpushは使用不可(ブラウザがサポートしていません)1は使用可 2権限が無効 3権限が確認されていません msg:'success' } }
                  
                  {
       mtPush: {
         code:1, //1は成功、-1は初期化中、0は失敗
         msg:'success'
       },
       webPush: {
         code:1, // 0 webpushは使用不可(ブラウザがサポートしていません)1は使用可 2権限が無効 3権限が確認されていません
         msg:'success'
       }
    }
    
                
    このコードブロックはフローティングウィンドウ内に表示されます

    ブラウザ通知権限の取得

    window.MTpushInterface.getWebPermission()
                  
                  window.MTpushInterface.getWebPermission()
    
                
    このコードブロックはフローティングウィンドウ内に表示されます

    戻りパラメータの説明

    • granted : 使用可
    • denied : 無効
    • default: 権限が確認されていません

    カスタムメッセージデータのレポート

    カスタムメッセージのデータ統計を行う必要がある場合は、カスタムレポートインターフェースを使用してデータをレポートしてください。

    window.MTpushInterface.customClickReport('msg_id');//msg_idはカスタムメッセージのmsg_idです
                  
                  
    window.MTpushInterface.customClickReport('msg_id');//msg_idはカスタムメッセージのmsg_idです
    
                
    このコードブロックはフローティングウィンドウ内に表示されます

    切断監視

    インターフェース説明

    初期化が成功した後に切断が発生した場合、SDKは自動的に再接続と署名を試みます。 初期化の前にこのイベントリスナーを呼び出すことを推奨し、このイベントを受信した後に再度初期化を呼び出してください。

    window.MTpushInterface.mtPush.onDisconnect(fn)
                  
                  window.MTpushInterface.mtPush.onDisconnect(fn)
    
                
    このコードブロックはフローティングウィンドウ内に表示されます

    呼び出し例

    window.MTpushInterface.mtPush.onDisconnect(function () { });
                  
                  window.MTpushInterface.mtPush.onDisconnect(function () {
    });
    
                
    このコードブロックはフローティングウィンドウ内に表示されます

    ブラウザサブスクリプションのキャンセル

    通知のサブスクリプションを解除します。一部のアカウントのプライバシーレベルが高い場合、アカウントをログアウトするときに通知を受信する必要がない場合にこのメソッドを使用できます。

    MTpushInterface. unSubscribe();
                  
                  MTpushInterface. unSubscribe();
    
                
    このコードブロックはフローティングウィンドウ内に表示されます

    TagsAliasの設定

    window.MTpushInterface.setTagsAlias({})

    MTpushInterface.setTagsAlias({ tags: ["test1", "test2"], alias: "aliass" });
                  
                  
    MTpushInterface.setTagsAlias({ tags: ["test1", "test2"], alias: "aliass" });
    
                
    このコードブロックはフローティングウィンドウ内に表示されます

    パラメータ説明

    パラメータ名 パラメータ型 パラメータの説明
    tags string[] 必須、配列の最大長は1000、各要素の最大長は40文字
    alias string 必須、最大40文字

    インターフェース説明

    開発者はこのインターフェースを通じて特定のエイリアスの下にタグを設定および削除できます。このインターフェースはオーバーレイロジックです。通知が空の文字列に設定されている場合、既存のタグを削除できます。

    カテゴリプロンプトの複数表示

    window.MTpushInterface.promptPushCategories();
                  
                  window.MTpushInterface.promptPushCategories();
    
                
    このコードブロックはフローティングウィンドウ内に表示されます

    インターフェース説明

    ユーザーがプッシュ通知をサブスクライブした後、開発者は必要に応じてカテゴリプロンプトを複数回表示できます。これはSDKの初期化後に呼び出す必要があります。

    プッシュメッセージ表示コールバック

    インターフェース説明

    初期化の前にメッセージリスナーを呼び出すことを推奨します。

    呼び出し例

    window.MTpushInterface.onMsgDisplay((msgData) => {});
                  
                  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: システムチャネルメッセージ }
                  
                  {
      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; }
                  
                  {
      title: string;
      content: string;
      msg_id: string;
      ntf_or_msg: number;
      type: string;
    }
    
                
    このコードブロックはフローティングウィンドウ内に表示されます

    注:

    1. アプリ内メッセージのHTML編集モードでは、コールバックパラメータtitlecontentは空の文字列です。

    2. Safariブラウザのシステムチャネルを介して配信されたメッセージは、表示コールバックを受信できません。

    プッシュメッセージクリックコールバック

    インターフェース説明

    初期化の前にメッセージリスナーを呼び出すことを推奨します。

    呼び出し例

    window.MTpushInterface.onMsgClick((msgData) => {});
                  
                  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: システムチャネルメッセージ }
                  
                  {
      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; }
                  
                  {
      title: string;
      content: string;
      msg_id: string;
      ntf_or_msg: number;
      position: 'msgBody' | 'mainBtn' | 'subBtn' | 'closeBtn';
      type: string;
    }
    
                
    このコードブロックはフローティングウィンドウ内に表示されます

    注:

    1. アプリ内メッセージのHTML編集モードでは、positionの値は開発者によって決定され、コールバックパラメータtitlecontentは空の文字列です。
    2. 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に接続できません
    icon
    お問い合わせ