logo產品文件
搜尋
登錄

Web SDK Chrome 插件 API

初始化 SDK

接口說明

為了防止出現大量的無效用戶,建議在初始化時使用的 user_str 唯一且保持不變,可根據瀏覽器指紋生成 user_str

調用示例

if (window.MTpushInterfaceExtension) { window.MTpushInterfaceExtension.initSdk({ appkey: '', user_str: '', }); }
              
              if (window.MTpushInterfaceExtension) {
  window.MTpushInterfaceExtension.initSdk({
    appkey: '',
    user_str: '',
  });
}

            
此代碼塊在浮窗中顯示

參數說明

interface InitType { appkey: string; // 開發者在 EngageLab 平台註冊的應用 appkey,必填項 user_str: string; // 用戶唯一標識,必填項 }
              
              interface InitType {
  appkey: string; // 開發者在 EngageLab 平台註冊的應用 appkey,必填項  
  user_str: string; // 用戶唯一標識,必填項  
}

            
此代碼塊在浮窗中顯示

獲取結果

chrome.runtime.onMessage.addListener((message) => { switch (message.type) { // 初始化 SDK 成功 case 'MTPUSH_INIT_SDK_SUCCESS': console.log(message.data); break; // 初始化 SDK 失敗 case 'MTPUSH_INIT_SDK_FAIL': console.log(message.data); break; } });
              
              chrome.runtime.onMessage.addListener((message) => {
  switch (message.type) {
    // 初始化 SDK 成功  
    case 'MTPUSH_INIT_SDK_SUCCESS':
      console.log(message.data);
      break;

    // 初始化 SDK 失敗  
    case 'MTPUSH_INIT_SDK_FAIL':
      console.log(message.data);
      break;
  }
});

            
此代碼塊在浮窗中顯示

message.data 的結構如下:

interface MessageData { code: number; // 狀態碼,0 代表成功,其他失敗,參考錯誤碼 message: string; // 結果描述 content: string; // 註冊失敗 1003 時返回失敗訊息 }
              
              interface MessageData {
  code: number; // 狀態碼,0 代表成功,其他失敗,參考錯誤碼  
  message: string; // 結果描述  
  content: string; // 註冊失敗 1003 時返回失敗訊息  
}

            
此代碼塊在浮窗中顯示

如果是用免費體驗到期或付費計劃到期的應用集成Chrome extension,導致的初始化 SDK 失敗,那麼會在 4 個小時後新開頁面、刷新頁面時再次執行初始化的流程。

獲取 RegistrationID

接口說明

不需要手動調用 API 獲取,在 SDK 初始化完成後,可以在事件 MTPUSH_GET_MT_INIT_INFO 回傳的訊息中獲取 regid

調用示例

chrome.runtime.onMessage.addListener((message) => { switch (message.type) { case 'MTPUSH_GET_MT_INIT_INFO': console.log(message.data.regid); break; } });
              
              chrome.runtime.onMessage.addListener((message) => {
  switch (message.type) {
    case 'MTPUSH_GET_MT_INIT_INFO':
      console.log(message.data.regid);
      break;
  }
});

            
此代碼塊在浮窗中顯示

回傳結果

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; }
              
              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;
}

            
此代碼塊在浮窗中顯示

停止推播

接口說明

調用此 API 來斷開與後台建立的推播長連接,停止接收推播訊息。

調用示例

window.MTpushInterfaceExtension.stopPush();
              
              window.MTpushInterfaceExtension.stopPush();

            
此代碼塊在浮窗中顯示

檢查推播服務狀態

接口說明

獲取推播服務狀態訊息。

調用示例

// 在 SDK 初始化成功後調用 window.MTpushInterfaceExtension.getPushAuthority(); // 監聽訊息獲取推播服務狀態 chrome.runtime.onMessage.addListener((message) => { switch (message.type) { case 'MTPUSH_GET_PUSH_AUTHORITY': console.log('推播服務狀態: ', message.data); break; } });
              
              // 在 SDK 初始化成功後調用  
window.MTpushInterfaceExtension.getPushAuthority();

// 監聽訊息獲取推播服務狀態  
chrome.runtime.onMessage.addListener((message) => {
  switch (message.type) {
    case 'MTPUSH_GET_PUSH_AUTHORITY':
      console.log('推播服務狀態: ', message.data);
      break;
  }
});

            
此代碼塊在浮窗中顯示

回傳結果

{ "mtPush": { "code": 1, // 1: 成功,-1: 初始化中,0: 失敗 "msg": "MTpush channel initialization successful!" }, "webPush": { "code": 1, // 0: webpush 不可用(不支援),1: 可用,2: 不可用 "msg": "Notification available" } }
              
              {
  "mtPush": {
    "code": 1, // 1: 成功,-1: 初始化中,0: 失敗  
    "msg": "MTpush channel initialization successful!"
  },
  "webPush": {
    "code": 1, // 0: webpush 不可用(不支援),1: 可用,2: 不可用  
    "msg": "Notification available"
  }
}

            
此代碼塊在浮窗中顯示

設置 TagsAlias

接口說明

開發者通過該接口可以設置及刪除特定 alias 下的 tags,該接口是覆蓋邏輯,通知設置為空串可以刪除已有 tags。

調用示例

window.MTpushInterfaceExtension.setTagsAlias({ tags: ["test1", "test2"], alias: "aliass" });
              
              window.MTpushInterfaceExtension.setTagsAlias({ tags: ["test1", "test2"], alias: "aliass" });

            
此代碼塊在浮窗中顯示

參數說明

參數名稱 參數類型 參數說明
tags string[] 必填,陣列最大長度為 1000,每個元素最多 40 個字元
alias string 必填,最多 40 個字元

回傳結果

監聽訊息獲取接口設置的結果:

chrome.runtime.onMessage.addListener((message) => { switch (message.type) { case 'MTPUSH_SET_TAGS_ALIAS_SUCCESS': console.log('設置成功'); break; case 'MTPUSH_SET_TAGS_ALIAS_FAIL': console.log('設置失敗', message.data); // 失敗訊息:string[] break; } });
              
              chrome.runtime.onMessage.addListener((message) => {
  switch (message.type) {
    case 'MTPUSH_SET_TAGS_ALIAS_SUCCESS':
      console.log('設置成功');
      break;

    case 'MTPUSH_SET_TAGS_ALIAS_FAIL':
      console.log('設置失敗', message.data); // 失敗訊息:string[]  
      break;
  }
});

            
此代碼塊在浮窗中顯示

自定義訊息打點

接口說明

自定義訊息如需上報做數據統計,請使用自定義上報接口。

調用示例

window.MTpushInterfaceExtension.customClickReport('msg_id'); // msg_id 為自定義訊息的 msg_id
              
              window.MTpushInterfaceExtension.customClickReport('msg_id'); // msg_id 為自定義訊息的 msg_id  

            
此代碼塊在浮窗中顯示

錯誤碼

code message 備註
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
聯繫銷售