【问题标题】:How to get access permissions when installing an app instead of requesting permission while using it如何在安装应用程序时获取访问权限,而不是在使用时请求权限
【发布时间】:2015-11-24 08:27:39
【问题描述】:

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

【问题讨论】:

    标签: javascript ios cordova permissions geolocation


    【解决方案1】:

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

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

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

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

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

    【讨论】:

    • 嗯,目前,这让我的应用体验很糟糕。如果您拒绝权限,这可能是偶然发生的,重要的部分将永远被破坏。我可以让它每次都问他们一次,直到他们接受吗?
    • 很遗憾没有,但是您可以检查是否授予或拒绝了权限,如果被拒绝,则显示错误消息并将您的用户直接发送到设置应用程序以授予应用程序必要的权限。
    猜你喜欢
    • 2012-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-05
    • 2020-06-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多