更新记录

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 [] 需要删除的通知消息唯一标识符,如果传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 读取通知消息

隐私、权限声明

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

通知权限

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

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

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