cordova geolocation 两次弹窗

问题描述

项目是 cordova 打包的 React 应用,项目里需要用到位置服务,
在 /language 页面请求位置许可,即调用 navigator.geolocation.getCurrentPosition,
在请求位置许可的时候弹了两次许可:

第一次是:允许“应用”在您使用该应用时访问您的位置吗?
第二次是:"/language" Would Like To Use Your Current Location

问题出现的环境背景及自己尝试过哪些方法

cordova 9.0.1
React 16.8.6
iOS 12.1.4

已通过查找资料排除了一些原因:

  1. 苹果开发文档要求的配置已加上 Requesting Always Authorization
    Privacy - Location When In Use Usage Description
    Privacy - Location Always and When In Use Usage Description
    Privacy - Location Always Usage Description
  2. index.html 顶部已引入了 cordova.js
  3. 项目已引入了 cordova-plugin-geolocation
  4. 在 deviceready 时才调用的 geoloation API

相关代码

document.addEventListener("deviceready", e => {
    navigator.geolocation.getCurrentPosition(
        this.geoSuccess.bind(this),
        this.geoError
    );
}, false);

你期待的结果是什么?实际看到的错误信息又是什么?

期待只看到第一次的位置许可弹窗,实际还多了第二个弹窗。

希望有遇到这个问题的朋友能指点一下怎么解决。

阅读 1.9k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题