iOS 8 和 Cordova:应用程序在首次启动时立即请求推送通知权限
Posted
技术标签:
【中文标题】iOS 8 和 Cordova:应用程序在首次启动时立即请求推送通知权限【英文标题】:iOS 8 & Cordova: App requests push notification permissions immediately on first launch 【发布时间】:2014-09-08 20:13:14 【问题描述】:更新:在 ios 8 的已启动/GM 版本中仍然存在此问题。
我的 Cordova 应用(版本 3.5.0-0.2.7)在 iOS 7 中,当我尝试注册设备时向用户请求推送权限。
现在,在 iOS 8(测试版 5,Xcode 测试版 7)中,它会在应用首次打开时请求推送权限。这不好,因为如果请求没有给出一些上下文,用户通常会拒绝许可。
据我所知,iOS 8 现在将远程推送通知和本地通知合并到同一个权限请求中,而以前,本地通知不是单独请求的。 (来源:1、2)。 Cordova 是否有可能在启动时在后台请求本地通知权限,而现在,在 iOS 8 中,这可能会出现在用户面前?
我拥有的唯一似乎相关的 Cordova 插件是 PushPlugin。 (不使用任何本地通知插件。)
感谢您的帮助!
【问题讨论】:
本地通知从不需要任何权限,据我所知,他们现在也不需要权限——它唯一需要用户权限的推送通知 你确定吗?我不断在网上看到对本地通知的引用,现在需要在 iOS 8 中获得许可(example 1,example 2) 还有,这是今年 WWDC 演讲中的一段摘录:“因此,在 iOS 8 中,无论您的应用是要显示远程用户通知还是本地用户通知,您的应用程序必须首先注册才能使用这些通知。这将导致向用户显示警报,询问他们您的应用程序是否可以向他们显示通知。 (Source) 这是否意味着您甚至无法在未经用户许可的情况下更新徽章计数?应用图标上的徽章几乎没有侵入性。 【参考方案1】:在文件 AppDelegate + notification.m 中尝试在 applicationDidBecomeActive 方法中将徽章编号设置为 0 的行注释
【讨论】:
以上是关于iOS 8 和 Cordova:应用程序在首次启动时立即请求推送通知权限的主要内容,如果未能解决你的问题,请参考以下文章
防止在首次启动 iOS 时调用 AFNetworking 可达性状态