接手一个项目用的是信鸽推送,但是没有实现业务跳转,所以要完善下。一开始使用的信鸽SDK是2.5.0的版本,研究了下文档,实现了下跳转逻辑,自测没问题然后发包测试了。结果第二天测试告诉我推送到达后,通过推送打开app闪退,联调了下,发现附加参数没有值,也没有添加判断条件,然后闪退了。先处理了下nil的情况,但是死活拿不到附加参数。这样就无法实现业务。网上搜了好久没找到解决办法。最后就把官方文档一句一句读了便,发现一句话,意思是:如果没有拿到push的参数(也就是附加参数),要重新生成一下推送证书。那就按照官方的说法来解决试试。
1、信鸽SDK已经升级到3.0版本了,顺便升级下,免得后面有什么坑(升级后感觉还是新版本的好用,参考官方文档)。这里发现信鸽的一个回调:
- (void)xgPushUserNotificationCenter:(UNUserNotificationCenter *)center
didReceiveNotificationResponse:(UNNotificationResponse *)response
withCompletionHandler:(void(^)(void))completionHandler
这个回调里面用来处理业务逻辑,以前app后台杀死的时候,通过推送打开App,要在- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 里面处理跳转逻辑;现在不用了,不管app是在后台挂起、在前台或者被杀死,都可以在这个回调里面处理业务。方便了很多。
2、看了下官方的生成证书步骤,自己弄了一套证书,然后上传到管理后台;然后重新测试,附近参数拿到了,问题解决。