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

时间:2015-08-30 00:25:16

标签: 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

1 个答案:

答案 0 :(得分:1)

iOS的权限模型与Android不同。在Android上,您需要在安装阶段为应用程序提供必要的权限(顺便说一下,M版Android操作系统也会更改,很快就会推出)。在iOS上,用户可以安装应用程序,无论请求的权限如何,然后,他/她会显示弹出窗口,要求他们批准给予每个必要的权限。用户可以说“不”。任何和所有请求的权限,仍然可以使用该应用程序(当然,并非所有功能,如果他/她没有给予必要的权限)。没有办法改变它,我相信它对用户来说要好得多。我猜谷歌相信它,否则他们不会改变他们的权限模型以匹配Apple在iOS上的权限模型。

您可以阅读本文以查看有关两个模型之间比较的一个视图:Android vs. iOS permissions model

顺便说一句,您可以确定何时向用户显示弹出窗口。建议的方法是仅在用户首次尝试使用需要权限的功能时才向他/她显示。但是,如果你想更早地显示弹出窗口(非常不推荐),你可以简单地尝试使用&#34;需要后台权限的功能,弹出窗口将显示给用户。

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

我希望这会有所帮助。祝你好运!