最近接友盟推送,文档超简单,本来就几分钟能完成的事情,结果断断续续搞了好几天,期间踩的坑,现在回想起来真的好可笑,完全可以避免的。不过在此也对友盟的客服以及技术点个赞,真的很耐心,尽管提交工单,他们提的意见也并不是太管用。
坑一:请勿在调用register方法时做进程判断处理(主进程和channel进程均需要调用register方法才能保证长连接的正确建立)。若未按文档要求初始化,则会导致App运行时,弹出toast提示。
友盟打开调试log文档
由于项目中某些第三方也会新开进程,所以第三方初始化的时候,都判断了进程。友盟推送不建议判断进程,打开调试就可以看到这个提示。
坑二:请确保Application Module的build.gradle文件中的applicationId与资源包名package一致(若不一致,请参考高级功能—自定义资源包名)。
这个原因就是导致我接收不到推送消息的原因。让其他同事运行接入了demo,然后他没过滤关键词,看到推送的时候其他是有log打印出来的。于是这提醒了我,我就去看了一下mainfest.xml中package确实是applicationId不一致。改了之后,终于可以接收到推送消息。
这个问题,其实完全可以避免的,友盟推送文档已经提示得挺明显的了。最近附上官方文档以及参考博客。