JPush集成华为推送的一些问题-Android端

声明:阅读前请知。极光内部集成了华为推送,在集成了极光推送的基础上,根据所提供的文档,为app添加华为HMS推送集成。该功能是极光为VIP用户提供的功能,非VIP账号就算按照文档集成,也无法实现对应的效果。这篇文章整理了我在集成的时候遇到的问题,在这里分享给大家。如果有写的不对的地方,欢迎拍砖~


1.华为推送点击后会自启-唤起启动页的问题

华为推送里有三种模式:启动app,富媒体推送和自定义推送。如果是自己集成华为推送的话,这里有一篇参考文章: http://blog.csdn.net/u013904672/article/details/71079278 。

极光的推送是默认启动app,所以点击的时候会唤起启动页。如果不想自启,需要在push api的payload中的 "notification" 的 "android" 节点下添加“uri_activity”字段(对应极光华为文档307行)。这样相当于自定义推送,唤起指定的activity,不会自行启动了。但同时,华为推送也不会再去走极光receiver里的逻辑,推送所需要达到的效果需要在唤起的activity中重新编写。

项目中用到的推送,处理的逻辑比较复杂,无法跳转到一个特定的activity。我的处理是默认跳转到MainActivity中,在MainActivity中进行其他逻辑的处理。这里遇到一个小问题,数据的传输是在intent中,而MainActivity是singleTask启动模式,所以重写onNewIntent函数,添加处理逻辑。

2.关闭华为推送

这个暂时还没有解决。目前使用的极光版本为3.1.1,极光本身的api有resumePush和stopPush,但是华为推送的关闭需要获取到HuaweiApiClient实例(HuaweiPush.HuaweiPushApi.deleteToken(client, token)),而该实例实在极光内部代码中创建的,无法获取到。


遇到问题很少,但是解决的过程中学习到了很多知识。希望能帮助到和我遇到同样问题的人,感谢阅读~~

你可能感兴趣的:(Android自学习——go,Joe!)