敬告:此 DEMO 演示为开放测试页面,仅用于开发者快速测试体验应用功能,请严格遵守开发者协议,了解更多。
♦ JS-SDK 引用方式:
♦ 普通网页 script 方式加载:下载最新版 jsBridge-v20241115.zip,请在页面上调用 jsBridge 接口之前引用 jsbridge-mini.js 库;
♦ js module 方式引用:npm install ym-jsbridge 具体请参考 npm package
♦ 云消息服务分配给当前设备的唯一标识 push_id ;
♦ 你可以将 push_id 保存到自己的服务器上,可以根据 push_id 来向此设备推送消息;
jsBridge.push.getPushId(function(succ, data) { if (succ) { jsBridge.setClipboardText(data.push_id); alert(data.push_id + "\n已复制"); } else { alert("获取失败\n" + JSON.stringify(data)); } }); /* data 参数说明: { push_id: "" //字符串类型,唯一标识 } */
//仅支持 iOS jsBridge.push.getDeviceToken(function(succ, data){ jsBridge.setClipboardText(data.device_token); alert(data.device_token + "\n已复制"); });
jsBridge.push.isOnline(function(succ, data){ if (succ) { alert(data.online ? "在线" : "离线"); } else { alert("检测失败\n" + JSON.stringify(data)); } }); /* data 参数说明: { online: true | false //布尔类型,true 在线,false 离线 } */
♦ 一个设备只能绑定一个别名,新别名会覆盖旧别名;
♦ alias 参数留空即可解绑别名;
jsBridge.push.bindAlias({ //别名 alias: "your_alias" }, function(succ, data){ alert(succ ? "绑定成功" : "绑定失败\n" + JSON.stringify(data)); });
jsBridge.push.bindAlias({ //别名留空即解绑别名 alias: "" }, function(succ, data){ alert(succ ? "解绑成功" : "解绑失败\n" + JSON.stringify(data)); });
♦ 一个设备可以绑定多个标签,本函数是增量绑定;
♦ tag 留空即可解绑所有标签;
jsBridge.push.bindTag({ //标签数组 tags: ["myTag1", "myTag2"] }, function(succ, data){ alert(succ ? "绑定成功" : "绑定失败\n" + JSON.stringify(data)); });
jsBridge.push.bindTag({ //标签留空即解绑所有标签 tags: [] }, function(succ, data){ alert(succ ? "解绑成功" : "解绑失败\n" + JSON.stringify(data)); });
消息监听
//监听通知和透传消息 jsBridge.push.setListener(function(event, data) { show({ event: event, data : data }); }); //请拉到页面底部查看回调数据信息 $('html,body').animate({ scrollTop: $('#view').offset().top }, 500); /* event 参数,字符串类型: NOTIFICATION 通知消息 TRANSMISSION 透传消息 */
//移除监听器,不会再收到回调通知 //在需要时可重新调用 setListener jsBridge.push.removeListener();
服务器端推送
使用百度 REST API 或者 服务器端 SDK 都是构造 JSON 数据发送到百度API接口,这里重点说明自定义提示音及点击通知打开链接的使用方法: //安卓 var android = { //0 Android 通知 "message_type": 0, "notification": { "title": "标题", "content": "内容", "action": { //6 点击通知打开应用 "action_type": 6, "params": { //点击通知在APP内打开此链接 "url": "https://www.example.com" } }, "notify": { //1 有声音,0 则无 "sound": 1, //1 有呼吸灯, 0 则无 "lights": 0, //1 有震动,0 则无 "vibrate": 0, //上传的自定义提示音,channel_id 和 sound_raw 相同,如: //"channel_id": "notify_xxx", //"sound_raw": "notify_xxx" "channel_id": "", "sound_raw": "" } } }; //苹果 var ios = { //4 iOS通知 "message_type": 4, "aps": { "alert": { "title": "标题", "body": "内容" }, //提示音 //default 为 iOS 系统默认提示音 //notify-xxx.mp3 为上传的自定义提示音 //留空则没提示音 "sound": "default", "_env": 2, "_badge_conf": "+1", "extras": { //点击通知在APP内打开此链接 "url": "https://www.example.com" } } };
监听回调数据: