如何区分PushKit推送启动了应用

hello_hmc 2016-07-14 05:50:19
原来以为收到PushKit推送的时候, 程序只是执行PushKit回调中的方法实现的方法 就是:
- (void)pushRegistry:(PKPushRegistry *)registry didReceiveIncomingPushWithPayload:(PKPushPayload *)payload forType:(NSString *)type; 中实现的方法, 结果测试发现, 如果程序在后台的情况确实是这样, 但是如果整个进程都被干掉的时候,就不是只执行回调中的方法,而是系统在某个区域会启动我们的应用,但是我们在前台和后台都看不到。但是执行的效果跟我们主动点击应用图标启动应用一样。我是这样验证的, 我在 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 和我主界面的 - (void)viewDidAppear:(BOOL)animated; 方法中各发送一个本地推送通知, 发现我都能收到这个通知。


那么问题来了, 我想要知道我该如何区分我的应用是我主动启动的还是被PushKit推送启动的?因为PushKit启动的情况下有些代码我不想执行。 我发现不管哪种情况启动的程序 launchOptions 参数都是nil。 跪求高手指点。
...全文
274 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
hello_hmc 2016-07-18
  • 打赏
  • 举报
回复
PushKit 应该收到这个通知- (void)pushRegistry:(PKPushRegistry *)registry didReceiveIncomingPushWithPayload: 但是这是在应用启动之后了, 而且不管是应用在后台还是说它启动了应用都能收到这个通知
网易云捕 2016-07-15
  • 打赏
  • 举报
回复
应用收到通知启动,会调用: - (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo { //Application did receive push notification. Do whatever you want to do }

29,028

社区成员

发帖
与我相关
我的任务
社区描述
主要讨论与iOS相关的软件和技术
社区管理员
  • iOS
  • 大熊猫侯佩
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧