ios - 程序在后台运行时收到通知didReceiveRemoteNotification不执行
ringa_lee
ringa_lee 2017-04-17 17:39:56
[iOS讨论组]

我的app在后台运行时,收到远程推送,通知栏已经有提醒了,这时候如果我点击app 的icon 运行程序,didReceiveRemoteNotification方法并不执行。请问这个怎么解决?
如果我是点击通知栏上的推送,didReceiveRemoteNotification是执行的。

ringa_lee
ringa_lee

ringa_lee

全部回复(3)
高洛峰

那个 工程配置试试
Capabilities BackgroundModes -> ON 选择RemoteNotification

黄舟

这是正常的情况,这个函数本来就是点击通知后才会触发的

伊谢尔伦

假如你的应用为启动 点击应用图标启动 会在

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(nullable NSDictionary *)launchOptions NS_AVAILABLE_IOS(3_0);

中通过Key值如下

    NSDictionary *pushInfo = [launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey];

可以获取到通知内容,
假如应用在后台,点击应用图标是不会调用其他关于通知的代理方法,除非点横幅,这样并没有什么不合理,很多应用也都是这样处理的,
应用在前台,收到推送,才会走你说的那个方法,另外假如你实现了

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult result))completionHandler NS_AVAILABLE_IOS(7_0) __TVOS_PROHIBITED;

那么就会在这个方法中调用,你说的那个方法就会废掉了.

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号