更新记录
1.0.0(2024-07-11)
无
平台兼容性
Android | Android CPU类型 | iOS |
---|---|---|
适用版本区间:5.1 - 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原生插件配置”->”云端插件“列表中删除该插件重新选择
Lin-NotificationHandler 插件开发者文档
1. 概述
一款为 uni-app 框架设计的 Android 原生插件,用于处理 Android 设备上的通知服务。它提供了一系列的方法来管理通知权限、监听短信、监听通知、获取活动通知以及模拟点击通知等功能。
应用场景:
- 服务行业,服务端需要持续监听新订单。
- 电商行业,商家需要持续监听订单信息。
- 外卖行业,商家需要监听新订单等信息。
- 短信监听,验证码接收。
- 其他行业,比如需要实现个人免签支付用于监听微信支付宝通知。
- 需要监听通知的 APP,如即时通讯、社交软件等。
2. 演示程序
3. 引入插件
在需要使用插件的文件中添加以下代码:
const LinNotificationHandler = uni.requireNativePlugin('Lin-NotificationHandler');
// 如果开启通知监听(非短信监听),请在首页 onLoad() 或 App.vue中onLaunch()中调用
// 用于重新连接通知服务,返回true/false
LinNotificationHandler.reconnectNotificationService()
4. API 文档
4.1 openPermissionSettings()
打开 APP 权限设置页面。
示例代码:
LinNotificationHandler.openPermissionSettings();
4.2 requestSmsPermission()
请求读取短信的权限。
示例代码:
LinNotificationHandler.requestSmsPermission();
4.3 smsListener()
开启短信监听。
参数描述:
参数名 | 类型 | 描述 |
---|---|---|
callback | Function | 回调函数,用于处理接收到的短信数据 |
示例代码:
LinNotificationHandler.smsListener(data => {
console.log('短信', data); // 短信内容对象
});
数据格式:
{
"packageName": "包名",
"text": "短信内容",
"title": "标题",
"postTime": "时间"
}
4.4 stopListening()
关闭短信监听。
示例代码:
LinNotificationHandler.stopListening();
4.5 isNotificationServiceEnabled()
检查是否启用了通知服务。
返回值: true
/false
启用 或 未启用
示例代码:
let isEnabled = LinNotificationHandler.isNotificationServiceEnabled();
console.log('检查是否启用了通知服务', isEnabled);
4.6 requestNotificationAccess()
请求用户启用通知访问权限。
示例代码:
LinNotificationHandler.requestNotificationAccess();
4.7 openNotificationListener()
开启通知监听。
参数描述:
参数名 | 类型 | 描述 |
---|---|---|
options | Object | 配置选项,如包名列表 |
callback | Function | 回调函数,用于处理通知消息 |
示例代码:
LinNotificationHandler.openNotificationListener({ packageNames: [] }, data => {
console.log('通知消息', data); // { "subText": "副标题", "packageName": "包名", "text": "通知内容", "title": "通知标题", "postTime": "通知时间"}
});
4.8 closeNotificationListener()
关闭通知监听。
示例代码:
LinNotificationHandler.closeNotificationListener();
4.9 getAllActiveNotifications()
获取所有活动通知。
参数描述:
参数名 | 类型 | 描述 |
---|---|---|
callback | Function | 通知列表 |
返回值: 通知列表 [{ "subText": "副标题", "packageName": "包名", "text": "通知内容", "title": "通知标题", "postTime": "通知时间"}]
示例代码:
let data = LinNotificationHandler.getAllActiveNotifications();
console.log('获取所有通知', data);
// LinNotificationHandler.getAllActiveNotifications(data => {
// console.log('获取所有通知', data);
// });
4.10 openNotificationAtIndex()
模拟点击打开指定的通知。可以配合 “getAllActiveNotifications”获取所有通知,根据获取到的所有通知的数组索引,打开指定的通知。
参数描述:
参数名 | 类型 | 描述 |
---|---|---|
index | Number | 通知在列表中的索引(根据getAllActiveNotifications 方法获取到的所有通知的数组索引,打开指定的通知。) |
返回值: true
/false
执行成功 或 失败
示例代码:
let res = LinNotificationHandler.openNotificationAtIndex(0);
console.log('模拟点击打开指定的通知', res);
4.11 openLatestNotification()
打开最近的一条通知。模拟点击打开通知时,若应用处于后台,需要用户手动开启“后台弹出界面”权限。
返回值: true
/false
执行成功 或 失败
示例代码:
let res = LinNotificationHandler.openLatestNotification();
console.log('打开最近的一条通知', res);
4.12 clearAllNotifications()
清空所有的通知信息。
返回值: true
/false
执行成功 或 失败
示例代码:
let res = LinNotificationHandler.clearAllNotifications();
console.log('清空所有的通知信息', res);
4.13 clearNotificationsForPackages()
清除指定应用的通知。
参数描述:
参数名 | 类型 | 描述 |
---|---|---|
packages | Array | 需要清除通知的应用包名列表 |
返回值: true
/false
执行成功 或 失败
示例代码:
let res = LinNotificationHandler.clearNotificationsForPackages(['com.tencent.mm']);
console.log('清除指定应用的通知', res);
4.14 isIgnoringBatteryOptimizations()
检查应用是否已忽略电池优化。
返回值: true
/false
已忽略 或 未忽略
示例代码:
let isIgnoring = LinNotificationHandler.isIgnoringBatteryOptimizations();
console.log('检查是否忽略电池优化', isIgnoring);
4.15 checkBatteryOptimization()
请求用户忽略应用电池优化。
示例代码:
LinNotificationHandler.checkBatteryOptimization();
console.log('请求忽略电池优化');
5. 注意事项
- 请确保在调用插件方法前已经正确安装并引入了插件。
- 模拟点击打开通知时,若应用处于后台,需要用户手动开启“后台弹出界面”权限。
- 如果发现通知访问权限显示为开启状态,但仍无法访问通知,请务必在App启动时首页的 onLoad() 或 App.vue中的onLaunch()调用reconnectNotificationService() 方法,重新连接通知服务。