我正在使用 Cordova 5.2.0 构建我的 iOS 应用程序,然后在插入计算机的 iPhone 上对其进行测试。当获取用户的位置或尝试访问相机时,会弹出一条通知,请求许可,类似于浏览器表现出的行为。我宁愿要求用户允许这些安装应用程序,而不是在应用程序中弹出一个弹出窗口,如果拒绝,将使很多东西变得无用。
通过阅读文档和其他各种帖子,我尝试将以下代码添加到 config.xml 中:
<feature name="Geolocation">
<param name="ios-package" value="CDVLocation" />
</feature>
<!-- etc for camera and other features -->
如果有帮助,我删除了 iOS 平台并重新添加了它。我构建了项目并在我的设备上对其进行了测试,它仍在应用程序中请求这些权限。我如何获得安装权限?
最佳答案
iOS 的权限模型与 Android 不同。在 Android 上,您需要在安装阶段授予该应用程序必要的权限(顺便说一下,这在 Android 操作系统的 M 版本上也会发生变化,即将推出)。在 iOS 上,用户可以安装应用程序,而不管请求的权限如何,然后,他/她会看到弹出窗口,要求他们批准授予每个必要的权限。用户可以对任何和所有请求的权限说“不”,并且仍然能够使用该应用程序(当然,如果他/她没有提供必要的权限,则并非所有功能都是如此)。没有办法改变这一点,我相信这对用户来说要好得多。我猜谷歌相信它,否则他们不会改变他们的权限模型来匹配苹果在 iOS 上的权限模型。
您可以阅读这篇文章以查看有关两种模型之间比较的观点:Android vs. iOS permissions model
顺便说一下,您可以确定何时向用户显示弹出窗口。推荐的方法是仅当用户首次尝试使用需要权限的功能时才向他/她展示。但是,如果你想更早地显示弹出窗口(强烈不推荐),你可以简单地尝试“使用”需要后台权限的能力,弹出窗口将显示给用户。
最后一点,请注意,用户可以随时撤销他/她已经授予您的应用程序的多个权限之一,并且您的应用程序必须能够处理该权限。
希望对您有所帮助。祝你好运!
关于javascript - 如何在安装应用程序时获取访问权限而不是在使用时请求权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32292010/