官方微信公众平台
当前位置:首页 >> 技术沙龙 >> 极光推送

极光推送


发布时间:2018-09-12

集成极光推送后测试的时候可以接收到消息推送,打包后就接受不到了。极光推送最坑的一个地方就是免费版的容易出现消息堵塞,造成再测试中的app接收不到消息。集成的时候有多个地方需要更换包名。设置tag的时候取消tag可以传null但是有潜在的大坑。

    集成方式就不说了。公司所有app都是集成的极光推送,集成方式都非常成熟了。


1.  集成极光推送后测试的时候可以接收到消息推送

     原因是混淆后极光推送的一些类就不管用的需要在混洗文件中添加:

    -dontoptimize
    -dontpreverify
 
    -dontwarn cn.jpush.**
    -keep class cn.jpush.** { *; }
 
    -dontwarn cn.jiguang.**
    -keep class cn.jiguang.** { *; }
因为minifyEnabled true(minifyEnabled主要用来控制是否运行混淆的。true表示混淆);


dontwarn表示打包混淆的时候,消除极光的警告。
keep表示保持极光的一些类,不被混淆


2.我使用极光推送以来遇到了几次接收不到消息的情况,在排查自己代码没问题的时候联系下客服,问一下是不是免费通道堵塞了,免费通道是全国公用的一个服务器,来实现简单的消息通知没问题,极光推送免费通道1秒处理几万条消息,大于设定数字的话就会造成堵塞。


3.集成的时候在AndroidManifes文件中需要多处用到项目报名,特别是

<permission
        android:name="com.******(包名).permission.JPUSH_MESSAGE"
        android:protectionLevel="signature"/>
    <uses-permission android:name="com.carspass.permission.JPUSH_MESSAGE"/>  

这是一个权限容易被忽略。


4.这是tag的要注意的地方

这里提供了两个同时设置别名和标签的同名方法:

public void setAliasAndTags(final String alias, Set<String> tags) {}
 
public void setAliasAndTags(final String alias, String tag) {}


不设置tag的话可以直接传null,但是传null的话,这两个重载的方法传的参数会一样,系统会不知道我们调的哪个方法。我就把第一个注释了,然后就自己给自己挖了个很大的坑。测试发现第一个方法Set<String>tags的位置传null,没问题。第二个String tag,传null,极光的接口回调回来走的6002,说tag的参数传的有问题。然后仔细一看,我相当于把一个null对象放到了Set<String>tags里,然后传给了极光。这里可以在原来基础上加个判空,然后再往Set里add。就跟第一种方法是一样的了。


技术总结:济宁远之航网络科技技术三部张茂瑞

  • 专注于服务电商领域

  • 资深电商服务专家

  • 一对一专属会员经理

  • 365万用户诚意推荐

业务QQ:1014905292

业务电话:13053758877

客服电话:400-032-5039

服务时间:08:00 — 18:00

扫一扫了解详情

All Rights Reserved © 2014-2018 鲁ICP备14000487号 山东远之航信息技术有限公司 |