javascript - 如何在安装应用程序时获取访问权限而不是在使用时请求权限

标签 javascript ios cordova permissions geolocation

我正在使用 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 平台并重新添加了它。我构建了项目并在我的设备上对其进行了测试,它仍在应用程序中请求这些权限。我如何获得安装权限?

notification

最佳答案

iOS 的权限模型与 Android 不同。在 Android 上,您需要在安装阶段授予该应用程序必要的权限(顺便说一下,这在 Android 操作系统的 M 版本上也会发生变化,即将推出)。在 iOS 上,用户可以安装应用程序,而不管请求的权限如何,然后,他/她会看到弹出窗口,要求他们批准授予每个必要的权限。用户可以对任何和所有请求的权限说“不”,并且仍然能够使用该应用程序(当然,如果他/她没有提供必要的权限,则并非所有功能都是如此)。没有办法改变这一点,我相信这对用户来说要好得多。我猜谷歌相信它,否则他们不会改变他们的权限模型来匹配苹果在 iOS 上的权限模型。

您可以阅读这篇文章以查看有关两种模型之间比较的观点:Android vs. iOS permissions model

顺便说一下,您可以确定何时向用户显示弹出窗口。推荐的方法是仅当用户首次尝试使用需要权限的功能时才向他/她展示。但是,如果你想更早地显示弹出窗口(强烈不推荐),你可以简单地尝试“使用”需要后台权限的能力,弹出窗口将显示给用户。

最后一点,请注意,用户可以随时撤销他/她已经授予您的应用程序的多个权限之一,并且您的应用程序必须能够处理该权限。

希望对您有所帮助。祝你好运!

关于javascript - 如何在安装应用程序时获取访问权限而不是在使用时请求权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32292010/

相关文章:

javascript - 包含 phonegap.js 后,HTML 文件无法在桌面浏览器上运行

javascript - 在这种情况下,React 中的 setState 是如何工作的?

javascript - 窗口的主干范围而不是这个

iphone - 我们可以从应用商店获得唯一的交易ID吗

ios - 自定义 UITableViewCell 中的 UILabels 永远不会被初始化

javascript - 地理定位并计算从当前纬度/经度到另一个纬度/经度的距离

cordova - 在 Phonegap Build 中使用 config.xml 编辑 Entitlements.plist 文件

javascript - 从网站下载图片到桌面

javascript - 如何捕获 Backbone.save 的 xhr 对象

ios - 按下按钮时显示键盘