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; //URORAプラットフォームで開発者が登録したアプリケーションのappkey、必須 user_str: string; //ユーザーの一意の識別子、必須 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を呼び出して適用 maCompletion?: (code: number, msg: string) => void; //ma-sdk初期化完了時のコールバック /** * 通知をクリックした際のリダイレクトリンク、優先順位:通知送信時に設定されたURL -> InitType.openUrl -> 統合ページのドメイン * Safariブラウザの場合、システムチャネルを通じて配信されたメッセージには追加の処理が必要です: * SDKを読み込む前に、window.MTpushInterfaceTempData = { openUrl: 'https://example.com' } を設定してください */ openUrl?: string; /** * swUrlをエンコードするかどうか * 使用シナリオ: * swUrlに@のような特殊文字が含まれており、サーバーがこのURLリソースへのアクセスを制限している場合、Service Workerの登録に失敗する可能性があります; * Service Workerを再登録する仕組みが必要であり、リトライ時にswUrlをエンコードする必要があります。 */ encodeSwUrl?: boolean; }
              
              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; //URORAプラットフォームで開発者が登録したアプリケーションのappkey、必須
  user_str: string; //ユーザーの一意の識別子、必須
  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を呼び出して適用
  maCompletion?: (code: number, msg: string) => void; //ma-sdk初期化完了時のコールバック
  /**
   * 通知をクリックした際のリダイレクトリンク、優先順位:通知送信時に設定されたURL -> InitType.openUrl -> 統合ページのドメイン
   * Safariブラウザの場合、システムチャネルを通じて配信されたメッセージには追加の処理が必要です:
   * SDKを読み込む前に、window.MTpushInterfaceTempData = { openUrl: 'https://example.com' } を設定してください
   */
  openUrl?: string;
  /**
   * swUrlをエンコードするかどうか
   * 使用シナリオ:
   *   swUrlに@のような特殊文字が含まれており、サーバーがこのURLリソースへのアクセスを制限している場合、Service Workerの登録に失敗する可能性があります;
   *   Service Workerを再登録する仕組みが必要であり、リトライ時にswUrlをエンコードする必要があります。
  */
  encodeSwUrl?: boolean;
}

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

同じスコープ内では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'
       }
    }
    
                
    このコードブロックはフローティングウィンドウ内に表示されます
    • WebPushオブジェクトのエラーコード:
    コード メッセージ 備考
    0 ブラウザが通知APIをサポートしていません ブラウザが通知APIをサポートしていません
    1 通知の権限が利用可能で、メッセージの購読に成功しました。 通知の権限が利用可能で、メッセージの購読に成功しました。
    2 通知の権限が無効化されており、メッセージの購読に失敗しました。 通知の権限が無効化されており、メッセージの購読に失敗しました。
    3 通知の権限が確認されておらず、メッセージの購読が実行されていません。 通知の権限が確認されておらず、メッセージの購読が実行されていません。
    -1 ブラウザがService Workerをサポートしていません。 ブラウザがService Workerをサポートしていません。
    -2 Service WorkerがHTTPをサポートしていません。 Service WorkerがHTTPプロトコルをサポートしていません。
    -3 Service Workerの登録に失敗しました。 Service Workerの登録に失敗しました。
    -4 通知の権限は利用可能ですが、メッセージの購読に失敗しました。 通知の権限は利用可能ですが、メッセージの購読に失敗しました。
    -5 購読がキャンセルされました。 購読がキャンセルされました。

    ブラウザ通知権限の取得

    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に接続できません
    1006 baseUrl と reportUrl の取得に失敗しました get-webaddr API リクエストが失敗しました。詳細については、コールバック内の content フィールドを参照してください
    1007 認証に失敗しました 認証に失敗しました。詳細については、コールバック内の content フィールドを参照してください
    icon
    お問い合わせ