最近一个uni-app项目使用极光推送,出现了ios应用图标上的角标和实际项目的中的推送消息数量不符的情况,再次查阅文档得以解决,查看文档发现了这一句话,重点
注意:这些接口是处理的极光服务器的角标,并不是APP显示的角标;如果要处理APP的角标需要调用Uni的方法
setBadgeNumber
设置应用图标上显示的角标数字
void plus.runtime.setBadgeNumber(number, options);
参数:
number: ( Number ) 必选 要显示的角标数字值,参数为0则表示清除角标数字。
options: ( BadgeOptions ) 可选
小米手机显示角标需要在系统消息中心显示一条通知,此参数用于设置通知的标题(title)和内容(content)。
返回值:
void : 无
平台支持:
Android - 2.2+ (支持) : 目前仅支持小米(MIUI6及以上)和华为设备,其它设备调用后无任何效果;
HBuilderX2.9.9+版本支持VIVO设备。iOS - 4.3+ (支持) : 应用需开启“Push Notifications”服务才生效。
示例:
// 设置数字
function setBadge() {
plus.runtime.setBadgeNumber(8);
}
// 清除数字
function clearBadge() {
plus.runtime.setBadgeNumber(0);
}
uni-app使用plus注意事项
小程序及 H5 等平台是没有 HTML5+ 扩展规范的,因此在 uni-app 调用 HTML5+ 的扩展规范时,需要注意使用条件编译。否则运行到h5、小程序等平台会出现 plus is not defined错误。
// #ifdef APP-PLUS
var appid = plus.runtime.appid;
console.log('应用的 appid 为:' + appid);
// #endif
uni-app不需要 plus ready 在html中使用plus的api,需要等待plus ready。
而uni-app不需要等,可以直接使用。而且如果你调用plus ready,反而不会触发。