官网给出解决方案:
Android 集成时获取,采用监听广播的形式:Action - cn.jpush.android.intent.REGISTRATION10
初始化成功后(监听获得了 registrationID),再要获取 registrationID 的值,需要调用 API10 再去获取:public static String getRegistrationID(Context context)
iOS监听 : extern NSString * const kJPFNetworkDidLoginNotification;7 // 登录成功后再去获取则可保证成功
可以在添加注册kJPFNetworkDidLoginNotification通知的方法里获取,也可以调用[registrationIDCompletionHandler:]方法,通过completionHandler6获取
注:给设备设置别名、标签或调用其他API也是一样的,需要先初始化成功,也就是先监听到成功后再调用API,这样可保证成功
最近一直苦恼,为什么魅族手机刚开始能够收到通知,后来收不到了,再后来才发现,不是收不到了,而是放到了不重要通知里面了。
然后还是苦恼,怎么放到正常通知里面呢,因为我还有通知的震动和声音的测试,各种百度,各种调功能权限,还是不行。
最后,终于得到一点信息,那就是魅族通知有记忆功能。
解决办法就是,多发几次通知,一定要点开,记住,一定要点开(当然,点击要有个动作才行,要不你还得左滑删除,这样是不行的),这样多测试几次。
我大概测试了不到10次,然后就从不重要通知移除了,变成了有声音震动的正常通知了
我先是将demo的包名改成自己的应用包名跑了一次,效果还行,然后就根据文档将推送sdk集成到自己项目中。在推送时应用的通知图标一直显示极光的图标,另一个手机是正常显示应用图标。没办法,尝试自定义通知栏,但是新问题出来了,由于 Android 手机的通知栏背景不一,自定义会比较繁琐,而我目前的需求比较简单,就继续折腾。
最后,发现问题还是出现在手机上,将手机重启一遍居然就行了,你没听错,就是将手机重启重启重启!!!原因应该是手机在launcher有缓存,我将demo的包名改成了自己应用的包名,缓存了demo的jpush图标。