更新记录

1.0.0(2024-07-11)


平台兼容性

Android Android CPU类型 iOS
适用版本区间:5.1 - 14.0 armeabi-v7a:支持,arm64-v8a:支持,x86:支持 ×

原生插件通用使用流程:

  1. 购买插件,选择该插件绑定的项目。
  2. 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
  3. 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
  4. 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
  5. 开发完毕后正式云打包

付费原生插件目前不支持离线打包。
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. 演示程序

扫码下载示例 APP

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() 方法,重新连接通知服务。

隐私、权限声明

1. 本插件需要申请的系统权限列表:

android.permission.SYSTEM_OVERLAY_WINDOW android.permission.BIND_NOTIFICATION_LISTENER_SERVICE android.permission.READ_SMS android.permission.RECEIVE_SMS

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问