厂商推送接入碰到的坑

本文记录了在新项目中集成极光推送与厂商推送过程中遇到的问题及解决方案,包括厂商SDK接入、离线消息回调、消息控制及重要级设置等,其中详细描述了解决华为和小米手机推送问题的步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    最近新项目,在做推送功能.由于国内的推送,碰到的各种被渠道屏蔽的问题.

然后集成了极光的推送和他们的厂商推送.虽然是接入第三方,但是碰到的问题还是很多.

下面就是碰到的问题以及解决过程.


# 1.厂商SDK的接入
其实厂商的SDK接入很方便,不要去看手动接入的方法,直接找到jcenter自动接入方式!
我在一开始接入的时候,也是对着文档来回看.一会先按照自动的接,然后运行了半天没生效.
然后又觉得是自动的接入有问题,还是得按照手动的接.后来手动的打通了以后,我又重新把
手动的换成jcenter自动的接入方式,然后也生效了.(我猜一开始自动没生效,可能是极光后台
申请的参数在渠道那边还没工作,导致我以为接入错误.就完全按照自动的集成极光厂商推送就可以了.)
# 2.离线消息的回调
接入了厂商推送以后,果然我的测试机全部都工作了,能正常的收到离线消息.然后测试点击跳转到应用
的逻辑时,又碰到了问题.小米手机能够正常跳转,华为手机每次点击推送只能进入到首页.查看日志发现,
华为手机没有走极光的回调事件.然后又是一番研究查看,没找到问题以后.咨询了极光客服人员.
说是接入了厂商以后,不再走极光的推送逻辑,要走点击跳转必须和服务端约定好跳转的逻辑.当时我看
文档的时候上面也有说明,但是没理解这个类的作用.然后继续按照这个类接入,和服务端对接成功以后.
推送,点击跳转,没问题.
# 3.厂商消息不受客户端控制
上述没问题以后,我想对推送消息进行过滤等处理.比如在前台的时候,IM消息不需要展示,退到后台
就会展示推送消息.结果看了一下,接入了厂商推送以后,所有的推送回调也都交给了厂商了.我们没办法
对推送进行过滤处理.又是咨询客服,告诉我们服务端的推送需要增加处理,同时增加极光的推送配置以及
厂商的推送配置,此时极光会对推送进行处理.用户应用存活,则发送极光推送,用户处于离线,发厂商推送.
此时,只要对极光推送的回调进行处理,可以过滤推送.
# 4.厂商消息重要级
前面

### UniApp 中实现极光推送离线消息推送的方法 为了使应用程序能够在后台或完全关闭的情况下接收来自极光推送的消息,在UniApp项目中集成厂商通道是必要的措施之一[^2]。 #### 创建并配置极光推送服务 在开始编码之前,需先完成极光推送服务平台上的准备工作: 1. 登录至【服务中心】下的【开发者平台】。 2. 进入【概览】页面中的【创建应用】选项来新建一个应用实例,并指定其名称与图标样式。 3. 当选择启用【消息推送】特性之后,则按照指示逐步设定好该应用对应的包名信息等内容直至最终确认提交。 4. 完成上述操作后返回到应用详情页内的【设置】->【应用设置】部分获取重要的`AppKey`以及`Master Secret`参数以便稍后的开发环节调用[^3]。 #### 配置厂商通道支持离线推送 由于仅依靠极光推送SDK不足以覆盖所有的场景特别是当目标设备的应用处于离线状态时,因此还需要额外接入各主流手机制造商所提供的官方推送渠道API接口。这一步骤通常涉及注册成为相应品牌的开发者成员身份并通过审核流程获得权限访问特定于品牌的通知发送能力。对于具体的实施细节可以参照文档说明进行相应的环境搭建和服务端对接工作[^4]。 #### 编写客户端代码处理接收到的信息 下面给出了一段用于监听并响应远程下发指令的JavaScript片段作为示范用途: ```javascript import jpush from 'jiguang/jpush' export default { onLoad() { this.initJPush() }, methods: { initJPush() { const that = this; // 初始化 JPush SDK jpush.init({ appkey: 'your_app_key_here', // 替换成自己的 App Key channel: 'developer-default' }); // 注册成功回调函数 jpush.on('register', function (msgId) { console.log(`Register Success, msgId=${msgId}`); // 设置别名(可选) jpush.setAlias({ alias: `alias_${new Date().getTime()}` }).then(res => { console.log('Set Alias:', res); }); }); // 收到自定义消息事件处理器 jpush.on('customMessageReceive', function (message) { console.log('Received Custom Message:', message); // 处理消息逻辑... }); // 接收通知打开事件 jpush.on('notificationOpen', function (notification) { console.log('Notification Opened:', notification); // 执行跳转或者其他交互行为... }) } } } ``` 这段脚本展示了怎样通过初始化极光推送组件并与之建立连接从而准备接受可能到来的数据包;同时也包含了针对不同类型通信内容所设计的不同类型的侦听器用来捕捉和解析实际传来的有效载荷数据[^5]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值