敬告:此 DEMO 演示为开放测试页面,仅用于开发者快速测试体验应用功能,请严格遵守开发者协议,了解更多。
♦ JS-SDK 引用方式:
♦ 普通网页 script 方式加载:下载最新版 jsBridge-v20241118.zip,请在页面上调用 jsBridge 接口之前引用 jsbridge-mini.js 库;
♦ js module 方式引用:npm install ym-jsbridge 具体请参考 npm package
• 设置本监听器可以收到个推通道下发的通知和透传消息;
• 如果多次设置监听器,只有最后一个才会收到通知。
jsBridge.getui.setListener(function(msg) { alert(JSON.stringify(msg)); }); alert("已设置监听器"); /** msg 回调参数说明 { messageId: //个推下发消息的编号,字符串类型 payload: //消息内容,字符串类型,如果你发送的是JSON数据,可以用 JSON.parse(payload) 转换 } **/
jsBridge.getui.turnOffPush(); alert("已停止接收推送");
jsBridge.getui.turnOnPush(); alert("已恢复接收推送");
♦ 仅支持 Android,iOS 始终返回 true。
jsBridge.getui.isPushTurnedOn(function(isOn){ alert(isOn); });
♦ 仅支持 Android,静默期间内推送功能将不再联网。
♦ iOS 始终返回 false
jsBridge.getui.setSilentTime( { beginHour: 20, //从晚上20点开始,取值范围0-23 duration : 8 //持续8个小时,取值范围0-23 }, function(succ){ alert(succ ? "设置成功" : "设置失败"); });
♦ 个推服务器分配给当前设备的唯一标识 cid
♦ 你可以将 cid 保存到自己的服务器上,可以根据 cid 来向此设备推送消息。
jsBridge.getui.getClientid(function(cid){ //复制到剪贴板 jsBridge.setClipboardText(cid); jsBridge.toast("已复制"); alert(cid); });
//仅支持苹果iOS和安卓华为、OPPO、VIVO //服务器端推送华为角标 //应用入口Activity路径名称为:com.lt.app.MainActivity jsBridge.getui.setBadge({ //角标数字,0则清除角标 badge: 18 }, function(succ) { alert(succ ? "设置成功" : "设置失败"); });
jsBridge.getui.setBadge({ badge: 0 });
别名
♦ 注意这个接口是覆盖逻辑,而不是增量逻辑。即新的调用会覆盖之前的设置。
♦ 同一个别名最多绑定10个 ClientID,当已绑定10个 ClientID 时,再次调用此接口会自动解绑最早绑定的记录。
♦ 此接口与 unBindAlias 一天内最多调用100次,两次调用的间隔需大于5秒。
jsBridge.getui.bindAlias('your_alias', function(succ){ alert(succ ? "绑定成功" : "绑定失败"); });
jsBridge.getui.unBindAlias( { alias :"your_alias", isSelf: true //是否只对当前 cid 有效,如果是 true,只对当前cid做解绑;如果是 false,对所有绑定该别名的cid列表做解绑 }, function(succ){ alert(succ ? "解绑成功" : "解绑失败"); });
标签
jsBridge.getui.setTag(['tag1', 'tag2', 'tag3'], function(succ){ alert(succ ? "设置成功" : "设置失败"); });
集成 服务端SDK
目前本平台仅提供群发推送操作功能,如需根据 clientId、alias、tag 进行定向推送,请参考 个推官方手册 选择合适的语音平台集成服务端SDK。用户点击手机上的消息通知时如需在 APP 中打开指定的网页,请发送 NotificationTemplate (点击通知打开应用)模板消息 template :
Android 添加 JSON 透传内容(TransmissionContent) template.setTransmissionContent("{\"url\": \"http://...要打开的网页地址\"}")
iOS 实例化 APNPayload, 使用 payload.addCustomMsg("url", "http://....") 方法添加 url 字段,template.setAPNInfo(Payload payload) 方法将 payload 写入消息模板
如果你使用个推平台Web端发送通知,请点击进入你创建的应用 - 创建推送 - 推送通知,展开 高级设置 - 开启 透传消息,并填写透传内容 {"url": "http://..."}
关闭 Android App 后收不到通知
Android 的推送通过长连接的方式实现,只有在保持连接的情况下才能收到通知。而有的第三方 ROM 会限制一般应用服务的自启动,也就是在退出应用后,应用的所有服务均被杀死,且无法自启动,所以就会收不到通知。为什么 QQ、微信之类的应用退出后还能够收到通知?因为这些大厂应用,手机厂商默认都会加入自启动白名单中,也不会在应用退出后杀死它们的相关服务。 如果你多加留意,就会发现非大厂的应用如果你一段时间不用都是收不到推送的。