敬告:此 demo 演示为开放测试页面,仅用于开发者快速测试体验应用功能,请严格遵守开发者协议,九游会国际-九游会真人第一品牌。
♦ js-sdk 引用方式:
♦ 普通网页 script 方式加载:下载最新版 ,请在页面上调用 jsbridge 接口之前引用 jsbridge-mini.js 库;
♦ js module 方式引用:npm install ym-jsbridge
本地通知应用举例:
1. 用户将app推到后台或退出app时发送一个延时10分钟的本地通知,10分钟后手机会收到这条消息,可提示用户继续未完成的工作。
2. app有个计时任务,可以在任务开始时发送一个延时任务时长的通知,当任务结束时用户会收到此通知。
请仔细阅读本说明:
♦ 发送延时(interval 参数大于 0 秒)或即时本地通知;
♦ 发送后请打开设备通知栏查看;
♦ 点击通知会自动激活app,如提供了 url 参数,同时会打开此链接(openurlinapp 参数为 true 表示在app内打开,否则在系统浏览器打开);
♦ 有未读通知的时候,桌面app图标一般会显示数字角标(badge);
♦ 部分 android 设备默认是禁用通知的,可调用 requestauth 检查是否允许通知;
♦ 如未允许通知,可调用 jsbridge.appsettings() 跳转到app设置界面,让用户开启通知;
♦ 如需显示悬浮或锁屏通知,部分设备可能需要人工开启对应权限;
♦ 在延时结束之前(interval 参数指定的)可调用 cancelall 取消通知,这样就不会收到还没发送的通知了;
♦ android 特性:在 interval 参数延迟结束之间要确保app进程处于存活状态,否则可能收不到通知;
♦ ios 特性:如果app处于前台激活状态,仅弹出通知提示,不会发送到通知栏;如果app处于后台、杀死或锁屏状态,会发送到通知栏;
jsbridge.notification.notify({ //通知标题(必须) title : "hello world!", //通知内容(必须) content: "这是通知内容。hi, nice to meet you~", //点击通知可打开此链接(可选) url : "https://m.baidu.com", //如果提供了url参数,可指定点击通知时是否在app内打开url,默认 true(可选) //true 在app内打开url //false 在系统浏览器内打开url openurlinapp: true, //延迟发送通知(秒)(可选),默认0(立即发送) //注意: //1.android 版:在 interval 延迟结束之间要确保app进程处于存活状态,否则可能收不到通知 //2.ios 版:如果app处于前台激活状态,仅弹出通知提示,不会发送到通知栏;如果app处于后台、杀死或锁屏状态,会发送到通知栏 interval : 2, //桌面app图标的角标数字(可选),默认无(仅支持 ios) badge : 1 }, function(succ, data) { if (succ) { console.log("2秒后发送通知"); } else { alert(json.stringify(data)); } });
//ios 苹果端执行本接口后把app推到后台或者锁屏手机,3秒后会收到通知。 jsbridge.notification.notify({ title : "打开百度的通知", content: "这是通知内容。点击在系统浏览器中打开百度...", url : "https://m.baidu.com", openurlinapp: false, interval : 3 }, function(succ, data) { if (succ) { console.log("3秒后发送通知"); } else { alert(json.stringify(data)); } });
jsbridge.notification.notify({ title : "爸爸的消息", content: "你爸喊你出门干活了,速度~~~", interval : 5 }, function(succ, data) { if (succ) { console.log("5秒后发送通知"); } else { alert(json.stringify(data)); } });
jsbridge.notification.notify({ title : "妈妈的消息", content: "你妈喊你回家吃饭了,速回~~~" }, function(succ, data) { if (succ) { console.log("已发送"); } else { alert(json.stringify(data)); } });
♦ 取消 notify 函数参数 interval 倒计时未结束的全部本地通知;
jsbridge.notification.cancelall();
jsbridge.appsettings();
♦ 角标 即是显示在app图标右上角的数字;
♦ ios 完美支持;
♦ android 版兼容性不好,推荐使用 notify 接口发送本地通知;
♦ 如果用户禁用了通知,则无法设置;
// 参数为不小于 0 的数字 // 设置为 0 则清除角标 jsbridge.notification.setbadge(23);
// 设置为 0 则清除角标 jsbridge.notification.setbadge(0);
♦ 仅支持 苹果 ios,安卓始终返回 0
♦ 如果用户禁用了通知,则始终返回 0;
jsbridge.notification.getbadge(function(badge) { alert(badge); });
♦ 检查用户是否允许或禁止了通知提醒;
♦ 如果用户已禁止,可以提醒用户去开启,执行 jsbridge.appsettings() 跳转到设置界面;
♦ ios 调用 setbadge 设置角标需“允许”通知,否则无法设置;
jsbridge.notification.requestauth(function(granted){ alert(granted ? "已允许" : "已禁止"); });