• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

ios - NSNotificationCenter 和 didReceiveRemoteNotification

[复制链接]
菜鸟教程小白 发表于 2022-12-12 16:11:49 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我在使用 NSNotificationCenter 和 didReceiveRemoteNotification 时遇到了一些问题。当我收到来自 APNS 的新通知时,我想打开我的 ViewController。内部通知我有 objectId - 这是关键。 我尝试将 ViewController 打开到 didReceiveRemoteNotification 但它不起作用((

AppDelegate.m

 - (void)applicationUIApplication *)application didReceiveRemoteNotificationNSDictionary *)userInfo
{   
    [[NSNotificationCenter defaultCenter]
 postNotificationName:kDidReceiveRemoteNotification
 object:userInfo];
}

NewsDetailViewController.m

- (void)viewDidLoad {
[super viewDidLoad];
[[NSNotificationCenter defaultCenter]
 addObserver:self
 selectorselector(didReceiveRemoteNotification
 name:kDidReceiveRemoteNotification
 object:nil];
}

- (void)didReceiveRemoteNotificationNSNotification *)notification
{
NSLog(@"%s %@",__func__,[notification.userInfo description]);
 }

常量.h

#define kDidReceiveRemoteNotification @"UIApplicationDidReceiveRemoteNotification"

ViewController 未加载。我不知道该怎么办。



Best Answer-推荐答案


您附加的示例代码的当前流程是:

  1. 收到推送通知时,向 NSNotificationCenter 发布通知(与推送通知完全不同且无关的东西)。
  2. 当另一个 View 被加载时(有人需要在收到推送通知之前加载这个 View ),订阅这个 NSNotificationCenter 通知。
  3. 发布通知后,将其打印到日志中。

我很难从您的问题中理解这一点,但是如果您因收到推送通知而尝试启动的 View Controller 是 NewsDetailViewController,那么您的代码不会这样做。您的代码所做的是打印要记录的通知(假设其他人确保在收到推送通知之前已加载 NewsDetailViewController)。

为了在收到推送通知时加载 NewsDetailViewController,您不需要将通知发布到 NSNotification

- (void)applicationUIApplication *)application didReceiveRemoteNotificationNSDictionary *)userInfo
{   
    NewsDetailViewController *newsVC = [[NewsDetailViewController alloc] initWithNibName"NewsDetailViewController" bundle:nil];
    [self.window.rootViewController.view addSubview:newsVC.view];
}

或任何其他更适合您的加载逻辑。但是在您发布的当前代码中,接收推送通知和加载 ViewController 之间没有任何联系。

我希望这会有所帮助。祝你好运!

关于ios - NSNotificationCenter 和 didReceiveRemoteNotification,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32260282/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap