更新记录
1.0(2022-12-03)
init
平台兼容性
Android | Android CPU类型 | iOS |
---|---|---|
适用版本区间:4.4 - 14.0 | armeabi-v7a:支持,arm64-v8a:支持,x86:支持 | × |
原生插件通用使用流程:
- 购买插件,选择该插件绑定的项目。
- 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
- 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
- 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
- 开发完毕后正式云打包
付费原生插件目前不支持离线打包。
Android 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/android
iOS 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/ios
注意事项:使用HBuilderX2.7.14以下版本,如果同一插件且同一appid下购买并绑定了多个包名,提交云打包界面提示包名绑定不一致时,需要在HBuilderX项目中manifest.json->“App原生插件配置”->”云端插件“列表中删除该插件重新选择
监听通知栏消息(支持白名单、黑名单、过滤) Ba-NotifyListener
简介
Ba-NotifyListener 是一款实时监听通知栏消息的uniapp插件。支持白名单、黑名单;支持监听消息移除;支持自定义过滤条件(如短信验证码)等。
- 支持监听所有通知栏消息(包含id、ticker、标题、内容、时间等等内容)
- 支持白名单(需要监听的应用,设置后其他应用都不监听)
- 支持黑名单(不想监听的应用,不设置白名单时有效)
- 支持自定义内容过滤条件(如过滤短信验证码,默认过滤4~8位数字)
有建议和需要,请联系QQ:2579546054
相关插件
应用消息通知插件(多种样式,新增支持常驻通知模式) Ba-Notify(文档)
应用未读角标插件 Ba-Shortcut-Badge (文档)
使用方法
在 script
中引入组件
const listener = uni.requireNativePlugin('Ba-NotifyListener');
在 script
中调用(示例参考,可根据自己业务和调用方法自行修改)
const listener = uni.requireNativePlugin('Ba-NotifyListener'); //本插件
const notify = uni.requireNativePlugin('Ba-Notify'); //应用通知插件(https://ext.dcloud.net.cn/plugin?id=9231)
export default {
data() {
return {
whiteList: [ //白名单
'com.ba.UniTemp',
'com.tencent.mobileqq', //qq
'com.tencent.mm', //微信
'com.android.mms', //短信
'com.android.incallui', //来电
],
blackList: [ //黑名单
'com.ba.UniTemp',
],
msgList: []
}
},
methods: {
setListener(flag = 0) { //设置监听
let params = {};
if (flag == 1) {
params = {
whiteList: this.whiteList,
//regex: "(\\d{4,8})",////正则表达式,默认为匹配4-8位的数字
};
} else if (flag == 2) {
params = {
blackList: this.blackList,
//regex: "(\\d{4,8})",////正则表达式,默认为匹配4-8位的数字
};
}
listener.setListener(params, res => {
console.log(res);
if (res.ok && res.data) {
if (res.data.listenType == 1) {
this.msgList.push('收到消息:');
this.msgList.push(JSON.stringify(res.data));
if (res.data.result)
this.msgList.push("解析结果:" + res.data.result);
}
if (res.data.listenType == 2) {
this.msgList.push('移除消息:');
this.msgList.push(JSON.stringify(res.data));
}
}
uni.showToast({
title: res.msg,
icon: "none",
duration: 3000
})
});
},
isHasPermission() { //是否开启获取通知权限
listener.isHasPermission(res => {
console.log(res);
uni.showToast({
title: res.ok ? (res.data && res.data.isHasPermission ? '已开启' : '未开启') : res.msg,
icon: "none",
duration: 3000
})
});
},
openPermission() { //跳转到通知权限设置界面(仅判断未打开时跳转)
listener.openPermission(res => {
let msg = res.msg;
if (res.data && res.data.isHasPermission) {
msg = res.data.isHasPermission ? "权限打开" : "权限关闭";
}
uni.showToast({
title: msg,
icon: "none",
duration: 3000
})
});
},
setPermission() { //跳转到通知权限设置界面(开不开都跳转)
listener.setPermission(res => {
console.log(res);
let msg = res.msg;
if (res.data && res.data.isHasPermission) {
msg = res.data.isHasPermission ? "权限打开" : "权限关闭";
}
uni.showToast({
title: msg,
icon: "none",
duration: 3000
})
});
},
sendNotify() {//用于测试通知
notify.show({
channelID: '0',
channelName: '普通通知',
ID: 1,
notifyType: 0,
ticker: 'Ticker',
title: 'title',
content: "【某某应用】验证码:708563。尊敬的用户,您正在...,我们不会向您索要此验证码,切勿告知他人!",
extend: "附加参数",
},
(res) => {
console.log(res)
});
}
}
}
api 列表
方法名 | 说明 |
---|---|
setListener | 设置监听 |
isHasPermission | 是否开启获取通知权限 |
openPermission | 跳转到通知权限设置界面(仅判断未打开时跳转) |
setPermission | 跳转到通知权限设置界面(开不开都跳转) |
setListener 方法参数
设置监听
属性名 | 类型 | 必填 | 默认值 | 说明 |
---|---|---|---|---|
whiteList | Array | false | '' | 白名单 |
blackList | Array | false | '' | 黑名单 |
regex | String | false | '' | 正则表达式过滤短信内容,默认过滤4~8位数字验证码,如'(\d{4,8})' |
监听通知的参数
判断 res.data 有内容(参照使用方法),监听接收到的通知
属性名 | 类型 | 说明 |
---|---|---|
listenType | Number | 1 接收到通知 2 移除通知 |
packageName | String | 应用包名 |
id | Number | 通知 id |
postTime | long | 时间(毫秒) |
postTimeS | String | 时间(yyyy-MM-dd HH:mm:ss 格式) |
tickerText | String | 通知 ticker,在顶部状态栏中的提示信息 |
title | String | 通知标题 |
content | String | 通知内容 |
result | String | 通知内容根据过滤规则,解析后的结果,如短信验证码 |
isOngoing | Boolean | 通知是否持续显示,侧滑不能删除 |
isClearable | Boolean | 点击通知,是否自动消失 |
isHasPermission、openPermission、setPermission方法 返回参数
判断 res.data 有内容(参照使用方法)
属性名 | 类型 | 说明 |
---|---|---|
isHasPermission | Boolean | 是否开启获取通知权限 |
系列插件
应用消息通知插件(多种样式,新增支持常驻通知模式) Ba-Notify(文档)
应用未读角标插件 Ba-Shortcut-Badge (文档)
扫码原生插件(毫秒级、支持多码)Ba-Scanner-G(文档)
扫码原生插件 - 新(可任意自定义界面版本;支持连续扫码;支持设置扫码格式)Ba-Scanner(文档)
动态修改状态栏、导航栏背景色、字体颜色插件 Ba-AppBar(文档)
安卓保活插件(采用多种主流技术) Ba-KeepAlive(文档)
安卓快捷方式(桌面长按app图标) Ba-Shortcut(文档)
自定义图片水印(任意位置) Ba-Watermark(文档)
最接近微信的图片压缩插件 Ba-ImageCompressor(文档)
视频压缩、视频剪辑插件 Ba-VideoCompressor(文档)
动态切换应用图标、名称(如新年、国庆等) Ba-ChangeIcon(文档)
原生Toast弹窗提示(穿透所有界面、穿透原生;自定义颜色、图标 ) Ba-Toast(文档)
websocket原生服务(自动重连、心跳检测) Ba-Websocket(文档)
智能安装(自动升级) Ba-SmartUpgrade(文档)
监听通知栏消息(支持白名单、黑名单、过滤) Ba-NotifyListener(文档)