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 |