iOS 10 个推送通知授权请求出现在应用程序启动时

iOS 10 push notification authorization request showing up on app launch

以前,在使用 iOS 9 SDK 构建我的应用程序时,推送通知授权请求警报(该系统警报显示:"App" 想向您发送通知...不要' t Allow / Allow) 只会在我调用 [[UIApplication sharedApplication] registerForRemoteNotifications].

时显示

我们决定实际上只在游戏中的某个时刻这样做,因此只鼓励用户在有意义时允许推送通知。

在 iOS 10,我知道我们必须使用用户通知框架来实现这一点(通过在 [UNUserNotificationCenter currentNotificationCenter] 上调用 requestAuthorizationWithOptions:completionHandler:),在应用功能和设置上启用推送通知权利。这确实适用于某些设备,但不是所有设备。

在某些设备上,即使我没有调用[=12],授权请求也会在应用启动时呈现给用户 =] 或 registerForRemoteNotifications 在任何时候。

最奇怪的是,即使我安装应用程序的 AppStore 版本(使用 Xcode 7 和 iOS 9 SDK 构建)。

我应该假设这是 iOS 10 的错误吗?我找不到遇到同样问题的其他人,只有一个类似的问题

问题实际上是 Game Center 的 [GKLocalPlayer localPlayer].authenticateHandler.

从 iOS 9 更改为 iOS 10

设置后,它将在 iOS 10 上触发推送通知权限请求。这在 iOS 上没有发生 9.

对于遇到此问题但未找到上述答案的任何人,请注意,尝试更改应用徽章也会导致推送通知请求。

我个人的情况是关于一个 Cordova 应用程序,我在初始化推送之前加载并应用了徽章插件,但无法弄清楚为什么在应用程序启动时会出现通知权限对话框。