Ionic,在权限对话框中单击 NEVER 后无法 re-enable 地理定位权限

Ionic, Cannot re-enable the geolocation permission after click NEVER in the permission dialog

我正在 Android phone 版本 6.0.1 上开发 Ionic 应用程序,我遇到了有关地理定位权限的问题。

  1. 应用程序成功请求用户提供地理定位权限,但当用户在对话框中单击“从不”时,应用程序无法再次请求。
  2. 用户点击 NEVER 后,我们应用程序在 Android 应用程序权限中的地理定位权限仍然启用。 (切换没有帮助)
  3. 只能重新安装应用程序,应用程序再次请求权限。

解决方案:

  1. 对话框要求启用位置而不是请求许可。
  2. 对话框由插件 https://github.com/mapsplugin/cordova-plugin-googlemaps 打开,而永不按钮不会 link 到 android 设置。
  3. 我通过使用另一个插件来处理打开定位服务来解决问题,该插件没有“从不”选项。

The app successfully asked user for geolocation permission, but when user clicks NEVER in the dialog, the app fails to ask again.

这是 Android 6.0 的预期行为:一旦用户通过选中 "Never ask again" 框永久拒绝权限,则不允许该应用以编程方式通过对话框提示用户。

唯一的选择是指导用户如何通过“设置”页面手动允许权限。为此,您可以使用 switchToSettings()from cordova-diagnostic-plugin 将用户切换到您应用的设置页面。

After the user clicking NEVER, the geolocation premission for our app in the Android App permissions is still enabled. (toggling that doesn't help)

不应该是这种情况:通过应用程序设置页面手动允许权限允许应用程序使用该功能。您可以使用 Android permissions example app for cordova-diagnostic-plugin. However, it depends how the plugin you are using to handle the permission requests responds to the "never ask again" situation. It maybe that you need to use cordova-diagnostic-plugin 手动检查权限状态并切换到应用程序设置页面(如果是 DENIED_ALWAYS。

自己确认这一点