3

我想向我的 tvOS 应用程序发送静默通知。这是否需要向用户询问通知权限?或者仅仅注册远程通知并在 Info.plist 中启用匹配的应用程序功能就足够了吗?

UNUserNotificationCenter.current().requestAuthorization(options: [.alert, .sound, .badge]) { (granted: Bool, error: Error?) in
    if error != nil {
        print(error?.localizedDescription ?? "error requesting notification authorization")
    }
}
UIApplication.shared.registerForRemoteNotifications()
4

5 回答 5

3

来自 Apple 文档

如果您的应用的本地或远程通知涉及用户交互,您必须请求系统授权以代表您的应用执行这些交互。交互包括显示警报、播放声音或标记应用程序的图标。

在 iOS 中,显示通知和允许将推送内容从云发送到应用程序是两件不同的事情。在您的情况下,“静默通知”不涉及与用户的任何交互,因此,您不需要请求此权限。但这并不妨碍您接收推送令牌以便将内容从云推送到应用程序。(无论用户的回答是什么,您都会收到一个推送令牌)。

我从未在 tvOS 中这样做过,但是根据文档,它应该是相同的。

于 2018-05-31T11:05:48.383 回答
0

即使不需要询问用户,我是否也需要注册远程通知?

Apple 的本地和远程推送通知文档中,特别是在其配置静默通知部分中,您会看到您需要设置项目的功能,并专门检查远程通知功能,如下所示:

在此处输入图像描述

因此,您需要在 Apple 的开发者网站中设置证书和其他必要的东西。希望能帮助到你!

于 2017-10-13T10:48:39.477 回答
-2

这与静默通知和推送通知所需的步骤相同。

于 2017-10-13T10:57:44.073 回答
-2
{
  "aps" : 
    {
     "alert" : 
      {
          "loc-key" : "GAME_PLAY_REQUEST_FORMAT",
          "loc-args" : [ "Jenna", "Frank"]},
          "sound" : "chime.aiff"
      },
     "acme" : "foo"
     }

Remove "sound":"chime.aiff"
于 2017-10-13T12:34:22.383 回答
-3

在 iOS、tvOS 和 watchOS 中,应用程序必须有权显示警报、播放声音或标记应用程序的图标以响应传入的通知。请求授权将这些交互的控制权交到用户手中,用户可以批准或拒绝您的请求。用户还可以稍后在系统设置中更改您的应用的授权设置。

来源:https ://developer.apple.com/library/content/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/SupportingNotificationsinYourApp.html#//apple_ref/doc/uid/TP40008194-CH4-SW1

于 2017-10-13T10:46:47.643 回答