首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >远程推送通知是否需要在UIBackgroundModes中添加Info.plist?

远程推送通知是否需要在UIBackgroundModes中添加Info.plist?
EN

Stack Overflow用户
提问于 2017-08-01 14:28:55
回答 5查看 76K关注 0票数 135

我已经集成了远程推送通知,但我收到了以下警告:

didReceiveRemoteNotification:fetchCompletionHandler:],但您仍然需要将"remote-notification“添加到Info.plist中支持的UIBackgroundMode的列表中。

我的Xcode版本是8.3.1。我真的想把这个添加到Info.plist中。我也学过一些教程,但他们也没有提到这一点。我到底该怎么做?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2017-08-01 14:42:05

是的,您应该启用后台模式/远程通知,以便能够使用远程通知进行后台更新。

最简单的方法是通过项目设置。导航到 ->,-> ->功能,->后台模式,并检查远程通知。这将自动启用所需的设置。

票数 301
EN

Stack Overflow用户

发布于 2018-04-03 20:01:05

您还可以编辑所需的info.plist (Open ->源代码)并粘贴:

代码语言:javascript
运行
复制
<dict>
<key>UIBackgroundModes</key>
    <array>
        <string>remote-notification</string>
    </array>
票数 45
EN

Stack Overflow用户

发布于 2019-11-30 17:58:38

实际上,您不需要仅仅为了使用远程通知就将UIBackgroundModes添加到.plist中。

我知道我有点离经叛道(另一个答案大多很好,也许是iOS 11中的一些新东西),但问题是,推送通知需要进行背景更新,而它们不需要。

这里的区别在于,有两种不同的方法接受AppDelegate上的通知;

这一项不要求您使用UIBackgroundModes:

代码语言:javascript
运行
复制
optional func userNotificationCenter(_ center: UNUserNotificationCenter, 
                         willPresent notification: UNNotification, 
               withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void)

上面的内容取代了iOS 11中不推荐的内容:

代码语言:javascript
运行
复制
optional func application(_ application: UIApplication, 
didReceiveRemoteNotification userInfo: [AnyHashable : Any])

这一项确实需要后台模式能力:

代码语言:javascript
运行
复制
optional func application(_ application: UIApplication, 
didReceiveRemoteNotification userInfo: [AnyHashable : Any], 
   fetchCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void)

这里的关键是,只有在应用程序处于前台时,才能运行前一个程序(以及被它替换的不推荐的应用程序)。如果应用程序位于前台或后台,后者将运行。有关这个特定的元素,请参见规格

使用此方法处理应用程序的传入远程通知。与应用程序(_:didReceiveRemoteNotification:)方法不同,该方法仅在应用程序在前台运行时调用,而系统在应用程序在前台或后台运行时调用此方法。

因此,如果您需要推送通知,那么就决定是否需要在后台运行--如果您需要这两种方法,那么您应该实现警告所建议的方法。

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45440627

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档