【问题标题】:Phonegap enable GPS/Location at app runtimePhonegap 在应用程序运行时启用 GPS/位置
【发布时间】:2013-11-15 17:27:11
【问题描述】:

我正在使用 jquery-ui-maps 和 HTML5 地理位置向用户显示位置列表,我需要利用用户的地理位置。

所以,这里是用例,

  1. 用户未启用 GPS/定位服务。
  2. 用户打开应用程序并导航到调用navigator.geolocation 以获取用户位置的视图
  3. 应用出错并通知用户他们必须启用 GPS/定位服务
  4. 然后用户离开应用并启用 GPS
  5. 当用户返回应用并尝试查看地图(再次调用地理位置)时,应用仍然无法使用 GPS。

我相信我已将其范围缩小为一个 Phonegap 问题,其中 GPS 权限在应用加载时初始化并且从未重新评估。

我的问题是,能否在应用程序运行期间启用 GPS,或者 Phonegap 是否需要重新加载应用程序才能使用 GPS?

【问题讨论】:

  • 我为你做了一个回答。如果您想查看代码,则必须自己发布某种代码。

标签: cordova geolocation navigator


【解决方案1】:

Phonegap 支持实时更新您的 GPS。

这是一个直接链接:

http://docs.phonegap.com/en/3.1.0/cordova_geolocation_geolocation.md.html#geolocation.watchPosition

一般称为“观看位置”,您可以自己设置刷新计时器。

关于在运行期间启用 GPS。

试着打电话给navigator.geolocation.watchPosition()

请记住在您的 config.xml 上也授予对地理位置的访问权限,但我想您知道 ;)

希望对你有所帮助。

【讨论】:

  • 我将更改我的服务类,该类抽象出使用watchPosition() 的地理定位调用并回复您
  • 请注意:您不需要为watchPosition() 设置刷新计时器 - 每次操作系统从 GPS 接收器接收到位置更新时,都会调用成功函数并传递一个新位置硬件
  • GPS开启时watchPosition()会触发吗?
  • 我为 GPS 核心 (ios 8 / android) 做了一个插件:github.com/vitorventurin/CordovaGPS
  • 我尝试了这个解决方案,但watchPosition() 仍然需要重新加载应用程序才能检测到应用程序运行时 GPS 是否打开。此外,watchPosition 会耗尽您的电池电量,因为尽管切换到其他路线,它仍会继续运行。
【解决方案2】:

经过一段时间的努力,我找到了一个能够帮助我解决同样问题的插件

https://github.com/nishantsharmajecrc/cordova-dialog-gps

  function calldialog() {
 document.addEventListener("deviceready",function() {
 cordova.dialogGPS("Your GPS is Disabled, this app needs to be enable to          works.",//message
            "Use GPS, with wifi or 3G.",//description
            function(buttonIndex){//callback
              switch(buttonIndex) {
                case 0: break;//cancel
                case 1: break;//neutro option
                case 2: break;//user go to configuration
              }},
              "Please Turn on GPS",//title
              ["Cancel","Later","Go"]);//buttons
  });
  }

【讨论】:

  • 好像那个插件只支持安卓,不支持其他平台。
  • 此插件已过时,仅适用于 android。随着cordova 8 文件系统结构发生了变化。不要安装它,因为您必须手动删除 package.json、插件文件夹、config.xml 等中的所有插件。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多