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 时返回失败信息
}
此代码块在浮窗中显示
如果是用免费体验到期或付费计划到期的应用集成插件,导致的初始化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 |