更新记录
1.0.1(2023-11-27)
文档更新
1.0.0(2023-11-27)
1.0.0
平台兼容性
Vue2 | Vue3 |
---|---|
√ | √ |
App | 快应用 | 微信小程序 | 支付宝小程序 | 百度小程序 | 字节小程序 | QQ小程序 |
---|---|---|---|---|---|---|
HBuilderX 3.98,Android:不确定,iOS:10,HarmonyNext:不确定 | × | × | × | × | × | × |
钉钉小程序 | 快手小程序 | 飞书小程序 | 京东小程序 |
---|---|---|---|
× | × | × | × |
H5-Safari | Android Browser | 微信浏览器(Android) | QQ浏览器(Android) | Chrome | IE | Edge | Firefox | PC-Safari |
---|---|---|---|---|---|---|---|---|
× | × | × | × | × | × | × | × | × |
xwe-push(推送插件)
HBuilder X 支持版本
支持版本 |
---|
3.9.8+ |
vue版本兼容
vue2 | vue3 | vue3+ts |
---|---|---|
√ | √ | √ |
平台兼容
(uniapp) App-Android |
(uniapp) App-iOS |
---|---|
x | √(10-16+) |
权限/配置说明文档
-
【ios】
内置配置:插件内配置了Info.plist,内置配置如下:
注意:下面配置项已经在插件内配置,项目中不需要重复配置了
<dict>
<key>UIBackgroundModes</key>
<array>
<string>remote-notification</string>
</array>
</dict>
manifest.json中的配置项:
App模块配置 > Push(消息推送) - 注意:不需要勾选里面的具体版本,只需勾选了Push模块即可。
源码试图配置 > app-plus > distribute > ios > pushRegisterMode 字段设置为 manual - 注意:设置这个是为了不让系统自动注册推送token,否则系统的UTSiOSHookProxy生命周期didRegisterForRemoteNotifications会触发多次。设置了不需要系统自动注册,本插件就会按照自己的体系去进行初始化和注册等操作。详见
关于aps-environment的配置:
勾选了Push模块,云打包会自动加上aps-environment的配置,打基座包是development,打正式包就是production。
动态注册通知权限:app初始化启动会动态注册通知权限,通知权限必须打开,否则无法使用推送功能。
接口使用文档
-
引入插件和实例化
【用的ts语法,非ts自行转换】
import {XWEPush} from '@/uni_modules/xwe-push';
let xwePush:XWEPush = new XWEPush();
-
获取-推送信息
xwePush.getPushInfo(callback)
说明:主要获取推送的token信息。
callback返回参数说明
属性 | 类型 | 说明 |
---|---|---|
callbackOption | Object | 返回权限状态、获取推送信息数据 |
callbackOption结构说明
属性 | 类型 | 说明 |
---|---|---|
code | number | 状态返回,详情查看 【code状态码说明】 |
message | string | 状态提示消息,详情查看 【code状态码说明】 |
data | Object/undefined | 权限不满足这个字段不存在,否则将会返回推送所需的信息数据。 |
data结构说明
属性 | 类型 | 说明 |
---|---|---|
token | string | 推送token,如果获取到的是空说明手机存在问题无法获取到推送token,那么该手机也将无法使用推送功能。 |
error | string | 注册失败返回的错误信息,error和token字段不会同时返回。 |
调用代码示例
【用的ts语法,非ts自行转换】
xwePush.getPushInfo((callbackOption:Object) => {
if(callbackOption.code == 30){
console.log('获取推送信息-成功',callbackOption.data.token);
}
if(callbackOption.code == -30){
console.log('获取推送信息-失败',callbackOption.data.error);
}
});
-
创建-本地通知
xwePush.createLocalNotification(option)
option结构说明
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
title | string | 是 | 通知标题 | |
body | string | 是 | 通知内容 | |
identifier | string | 随机生成 | 否 | 通知请求唯一标识符,如未传此参数将随机生成一个唯一标识符 |
timeInterval | number | 1 | 否 | 时间间隔,单位为:秒 |
repeats | boolean | false | 否 | 是否重复,如果repeats设置为true,那么timeInterval的值必须大于等于60s,否则将默认为60s |
badge | number | 1 | 否 | 消息角标数字,默认为1,每条消息只能对应一条消息角标,所以这里只可以设置两个数字0(不增加数字)和1(增加1条) |
userInfo | Object | 否 | 关联的用户自定义数据 | |
callback | function | 否 | 创建本地消息成功/失败回调函数,返回状态和结果,状态码详情查看 【code状态码说明】 |
callback返回参数说明
属性 | 类型 | 说明 |
---|---|---|
callbackOption | Object | 返回创建本地通知状态 |
callbackOption结构说明
属性 | 类型 | 说明 |
---|---|---|
code | number | 状态返回,详情查看 【code状态码说明】 |
message | string | 状态提示消息,详情查看 【code状态码说明】 |
调用代码示例
【用的ts语法,非ts自行转换】
xwePush.createLocalNotification({
title:'推送测试',
body:'推送内容信息测试',
identifier:'XWELocalNotification1',
timeInterval:0,
userInfo:{'id':1001,'name':{'mag':'ok'}},
callback:(callbackOption:Object) => {
if(callbackOption.code == 31){
console.log('创建本地通知-成功',callbackOption);
}
if(callbackOption.code == -31){
console.log('创建本地通知-失败',callbackOption);
}
}
});
-
获取-所有通知消息
xwePush.getAllNotification(callback)
callback返回参数说明
属性 | 类型 | 说明 |
---|---|---|
callbackOption | Object | 返回获取所有通知消息状态和数据 |
callbackOption结构说明
属性 | 类型 | 说明 |
---|---|---|
code | number | 状态返回,详情查看 【code状态码说明】 |
message | string | 状态提示消息,详情查看 【code状态码说明】 |
data | Object | 返回获取到的数据信息 |
data结构说明
属性 | 类型 | 说明 |
---|---|---|
details | Array\<object> | 获取的所有通知消息数据 |
details object结构说明
属性 | 类型 | 说明 |
---|---|---|
title | string | 通知标题 |
body | string | 通知内容 |
identifier | string | 通知请求唯一标识符 |
userInfo | Object | 关联的用户自定义数据 |
-
监听-通知变化
xwePush.onNotificationChange(callback)
说明:服务端推送的时候,自定义数据userInfo最好是包裹在键名为aps内,因为插件只会去获取aps键名的数据,示例:"aps":{"id":0,"name":"test"}。
callback返回参数说明
属性 | 类型 | 说明 |
---|---|---|
callbackOption | Object | 返回监听的通知变化状态和数据 |
callbackOption结构说明
属性 | 类型 | 说明 |
---|---|---|
code | number | 状态返回,详情查看 【code状态码说明】 |
message | string | 状态提示消息,详情查看 【code状态码说明】 |
data | Object/undefined | 返回监听的通知变化数据信息 |
data结构说明
属性 | 类型 | 说明 |
---|---|---|
details | Object | 返回收到的通知消息数据 |
details object结构说明
属性 | 类型 | 说明 |
---|---|---|
title | string | 通知标题 |
body | string | 通知内容 |
identifier | string | 通知请求唯一标识符 |
userInfo | Object | 关联的用户自定义数据 |
调用代码示例
【用的ts语法,非ts自行转换】
xwePush.onNotificationChange((callbackOption:Object) => {
if(callbackOption.code == 40){
console.log('已开启监听通知变化事件');
}
if(callbackOption.code == 41){
console.log('收到通知消息',callbackOption.data.details);
}
if(callbackOption.code == 42){
console.log('读取通知消息',callbackOption.data.details);
}
});
-
删除-通知角标
xwePush.clearBadgeNumber(badgeNumber)
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
badgeNumber | number | 是 | 需要删除的消息角标数量,如果设置为0即清空消息角标 |
调用代码示例
【用的ts语法,非ts自行转换】
//删除1条消息角标数量
xwePush.clearBadgeNumber(1);
//清空消息角标数量
xwePush.clearBadgeNumber(0);
-
删除-通知消息
xwePush.removeNotifications(identifier)
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
identifier | Array\ |
[] | 是 | 需要删除的通知消息唯一标识符,如果传null即删除全部通知消息。 |
调用代码示例
【用的ts语法,非ts自行转换】
//删除通知消息
xwePush.removeNotifications(['XWELocalNotification1']);
//删除全部通知消息
xwePush.removeNotifications(null);
-
请求-通知权限
xwePush.requestNotificationPermission(callback)
callback返回参数说明
属性 | 类型 | 说明 |
---|---|---|
callbackOption | Object | 返回请求通知权限的状态 |
callbackOption结构说明
属性 | 类型 | 说明 |
---|---|---|
code | number | 状态返回,详情查看 【code状态码说明】 |
message | string | 状态提示消息,详情查看 【code状态码说明】 |
-
检测-通知权限
xwePush.checkPushNotificationPermission(callback)
callback返回参数说明
属性 | 类型 | 说明 |
---|---|---|
callbackOption | Object | 返回检测通知权限的状态 |
callbackOption结构说明
属性 | 类型 | 说明 |
---|---|---|
code | number | 状态返回,详情查看 【code状态码说明】 |
message | string | 状态提示消息,详情查看 【code状态码说明】 |
code状态码说明
code | 类型 | message | 说明 | 平台差异 |
---|---|---|---|---|
20 | number | Permission ok | 权限满足 | |
21 | number | Authorized:Push notification permission | 已授权:推送通知权限 | |
-21 | number | unauthorized:Push notification permission | 未授权:推送通知权限 | |
-22 | number | unregistered:Push notification permission | 未注册:推送通知权限 | |
30 | number | Get push information success | 获取推送信息成功 | |
-30 | number | Get push information failed | 获取推送信息失败 | |
31 | number | Create Local Notification success | 创建本地通知成功 | |
-31 | number | Create Local Notification failed | 创建本地通知失败 | |
32 | number | Get all Notification success | 获取所有通知消息成功 | |
40 | number | Listening notification change event enabled | 已开启监听通知变化事件 | |
41 | number | Received notification message | 收到通知消息 | |
42 | number | Read notification message | 读取通知消息 |