先放上插件市场的地址:OneSignal海外App推送服务 支持iOS和Android - DCloud 插件市场
前景
“叮咚!您有一条新的通知消息,请注意查看!”。类似这样的消息,相信大家在自己的手机上见过无数条,在App开发中我们把它叫做推送。
推送功能是 App 与用户进行主动交互的重要渠道,它允许 App 通过设备系统向用户发送消息通知,有效提升用户对 App 的关注度与活跃度。在技术实现上,推送功能依赖于推送服务提供商,如苹果的 APNs(Apple Push Notification service) 、谷歌的 FCM(Firebase Cloud Messaging),以及国内的厂商推送通道。
苹果手机,推送可以直接通过官方自己的APNS通道进行推送,而安卓机机型太多,每个厂商又有自己的推送通道,如果在开发时每个厂商都由开发者自己去对接,工作量是非常大的。所以就有了推送平台的诞生,像我们熟知的个推、信鸽、极光等等。在原生App开发中,这些都是非常成熟的,技术文档也都非常完善,集成起来没有什么难度。
但是在uni-app中,由于使用方式不同(需要通过插件的方式),很多推送平台还没有兼容uni-app端的集成。目前个推、极光、腾讯云这几家已经针对uni-app开发了原生插件或者UTS插件,支持集成。
海外App推送功能
国内上线的App和海外App在推送功能上最大的区别,就是推送渠道,而且是针对Android系统。为了提升海外推送的送达率,我们一般都是需要接入谷歌的FCM,目前uni-app插件市场中已经有几个推送平台提供了插件,而且也都支持了FCM功能。
uni官方推荐的是uni-push方案,是个推平台和uni合作退出的推送方案,可以结合uni-cloud云函数使用,整体来说集成是比较简单的。其他几个极光、腾讯云也都有很完善的开发文档以及客服支持。
但是!但是!但是!这些国内平台在进行海外推送的时候,push服务器都是在国内的,会有一定延迟或者丢失的概率。或者是有些公司需要全部使用海外服务(对美形势影响),不经过国内任何服务,这些就不满足了。所以我也咨询过各平台的商务和技术客服,虽然支持海外自定义部署,但是费用相对来说还是比较昂贵的。于是我就找了下海外的免费推送平台,最终发现了OneSignal。
OneSignal,是一款海外的被广泛应用的跨平台推送通知服务,它为开发者提供了强大且易用的工具,能帮助他们向移动应用(iOS、Android)、网页应用和桌面应用发送推送通知。他们的技术支持非常友好,实时真人在线支持,回复快。而且技术非常完善,有原生安卓、iOS支持,也有flutter、RN等,甚至是鸿蒙系统的支持(国外的技术平台对于鸿蒙的支持是非常少见的)。
编辑
Uni-app中的使用
为了在uniapp中使用OneSignal,我也是自己开发了UTS插件,这里就给大家介绍下。
插件的地址是 OneSignal海外App推送服务 支持iOS和Android - DCloud 插件市场 大家觉得好用可以的话可以点个小心心支持一下!
插件市场里面有使用说明,这里也还是重新介绍一下。
api介绍
目前暴露以下几个api,如有业务需要可定制增加其他api。
//初始化
export declare function initOSPush() : void
//设置消息监听
export declare function addListener(notiCallback : HYNotificationCallback) : void
//登录,设置externalId
export declare function login(externalId : string) : void
//退出登录,清空alias
export declare function logout() : void
//设置alias
export declare function setAlias(alias_label : string, value : string) : void
具体使用
- 头文件导入
import * as OSPush from '@/uni_modules/hy-oneSignal'
2. 方法调用
在App.vue或其他合适的地方(根据业务需求)中完成登录,并设置别名alias以及收到推送的监听方法
2.1 初始化
OSPush.initOSPush()
2.2 登录
OSPush.login('xhy')
2.3 设置别名
OSPush.setAlias('alias', '1217')
2.4 设置监听方法
OSPush.addListener((notification) => {
// 监听通知栏消息的点击
if (notification.type == 'click') {
console.log('点击了通知栏消息', notification)
}
// 监听在线推送消息
if (notification.type == 'display') {
console.log('接收到的消息内容', notification)
}
})
操作界面介绍
1、OneSignal官网平台推送
2、利用Postman通过restapi推送
3、查看订阅
4、推送历史查看
5、App端效果