1. 功能介绍
本模块开启后,可以使APP在处于离线状态时,依然能够收到消息通知和通话呼叫邀请。
本模块是通过接入unipush1.0实现,为何选择unipush1.0作为离线推送的sdk?
2. 购前须知
- 支持国内的主流品牌:苹果、华为、小米、oppo、vivo、荣耀,但海外推送还未完成调试
- 华为、小米、oppo、荣耀,这几个品牌需要用户手动开启消息通知权限
- 本模块需调用unipush(个推)的sdk,所以服务器需要访问外网的能力
- 为节约服务器资源,超过30天未登录的用户不会收到离线通知
- 由于盒子IM不能像微信一样具备常驻后台权限,加上开发时间有限,实现的效果跟微信等知名社交软件还是有差距的,请老板们购买前务必在体验环境进行体验,确认效果能达到预期
- 启用本功能需老板们自行开通unipush权限,并在手机厂商开发者后台开通推送服务
- 开通消息推送有一定的门槛,小米、oppo、vivo均要求app上架后才可开通推送权限
3. 使用说明
3.1. 配置说明
配置项 |
默认值 |
说明 |
notify.enable |
false |
是否开启离线通知。当不需要离线通知或unipush权限未开通时,请设置为false,否则会有报错且有性能损耗 |
notify.debug |
false |
是否调试模式。当华为或荣耀厂商的账号未申请消息分类时,一天只能推2条消息,此时将此参数设置为true后,一天可以发500-1000条消息,但此参数在生产环境必须设置为false |
notify.app-name |
盒子IM |
应用名称。同时也是通知栏上显示的默认名称 |
notify.package-name |
com.boxim |
应用包名。需跟unipush后台配置的一致 |
notify.active-days |
30 |
用户最近活跃天数。为节约服务器资源,大于30天内未登陆的用户不推送离线通知 |
notify.max-size |
-1 |
最大消息数量,-1表示不限制。为节省服务器资源和减少对用户的打扰,用户接收消息数量超过此值时不再推送,用户每次在APP登陆时,消息数量会重置 |
notify.uni-push |
|
unipush的账号信息。位置:dcloud开发者中心->unipush->消息推送->配置管理->应用配置 |
notify.manufacturer.xm-channel-id |
|
小米消息类别channelId。 |
notify.manufacturer.hw-category |
IM |
华为消息分类类型,开通推送服务后自行申请 |
notify.manufacturer.op-category |
IM |
oppo消息分类类型,开通推送服务后自行申请 |
notify.manufacturer.vv-category |
IM |
vivo消息分类类型,开通推送服务后自行申请 |
配置样例参考:
notify:
enable: true # 是否开启推送功能
debug: false # 调试模式,生产环境必须关闭,华为手机在调试模式下,一天可发送500条消息
app-name: 盒子IM # app名称,也是默认title
package-name: com.boxim # 应用包名,跟unipush后台配置的一致
active-days: 30 # 用户最近活跃天数,30天内未登陆的用户不推送
max-size: -1 # 最大消息数量,未读数量超过此值不再推送,-1表示不限制
uni-push:
app-id: nyK71XQYUy9s7vasoutlp1
app-key: XtG6NkUSL98evt23gSE0jYA
master-secret: MxApXxsx05231jcPCeC0cXk6
manufacturer:
xm-channel-id: 100142 # 小米消息类别channelId
hw-category: IM # 华为消息类别
op-category: IM # oppo消息类别
vv-category: IM # vivo消息类别
3.2. 开通unipush
离线通知功能需要您自行开通unipush权限。
开通unipush权限不难,但是还需要在每个手机厂商注册账号并开通推送消息权限,每个手机厂商还有自己的一些规则和限制,里面还涉及到不少概念和术语,整个过程还是相当繁杂的。
这里为汇总一些作者认为比较重要的文档链接,希望对您有所帮助:
uniapp对于unipush1.0的官方文档:
https://uniapp.dcloud.net.cn/unipush-v1.html
unipush开通指南:
https://ask.dcloud.net.cn/article/35716
最新厂商限额规则(安卓离线推送必读):
https://docs.getui.com/getui/mobile/vendor/qps/
个推说明文档(unipush其实用的是个推的sdk):
https://docs.getui.com/getui/server/rest_v2/push/
安卓常见问题:
https://docs.getui.com/getui/question/android/
如果对于unipush相关的问题还有疑虑,可以使用微信扫描下面二维码,进行技术咨询,会有专业的个推专业人员为您解答:
4. 常见问题
4.1. 为何选择unipush1.0作为离线推送的sdk?
- unipush1.0目前可以免费使用,而其他如极光、unipush2.0等sdk均需要收费
- unipush2.0虽然是uniapp推荐的版本,但unipush2.0依赖unicloud云环境,主要是用于消息不走自己服务器的场景,而我们是有自己的服务器的
- unipush2.0如果需要在后台进行推送,需要通过定义云函数的方式,概念比较抽象。而unipush1.0有现成的java sdk,接入更简单
- 综合以上,作者认为unipush1.0更适合盒子IM的场景
5. 效果截图
离线消息通知:
离线呼叫通知:
暂无评论内容