【问题标题】:Ionic with Android Emulator: Automatically send location?Ionic 与 Android 模拟器:自动发送位置?
【发布时间】:2018-03-15 03:06:13
【问题描述】:

我的 android 模拟器有问题。当我关闭并重新打开我的应用程序时,位置不会自动发送。我必须进入 Extended Controls -> Location 并单击 Ionic Geolocation getCurrentPosition 函数的“发送”按钮才能接收它。

当我启动 android 模拟器并且应用程序第一次打开时,这不是必需的。知道无论如何如何自动发送位置吗?

【问题讨论】:

  • 你试过手机吗?这种行为是否也出现在手机中?通常模拟器不会按照您想要定义它们的方式执行
  • 由于某种原因,它在移动设备上运行良好。它只是一个安卓模拟器。

标签: android ionic-framework geolocation android-emulator google-geolocation


【解决方案1】:

通常对于插件的测试,我们需要在真实设备中进行验证,但作为您在模拟器中使用它的原始问题,为了解决这个问题,

  1. 尝试清除cordova Cache(如果你使用Visual Studio,你可以像Tools->Options那样做)

  2. 尝试用enableHighAccuracy : true添加watchPosition函数

navigator.geolocation.watchPosition(onSuccess, onError, { 
    timeout:40000,
    enableHighAccuracy: true 
});

更新:

快速搜索后,找到this链接,它指出:

从 Chrome 50 开始,Chrome 不再支持获取 使用 HTML5 Geolocation API 从交付的页面获取用户的位置 通过非安全连接。这意味着正在制作的页面 地理定位 API 调用必须从安全上下文中提供服务,例如 HTTPS。

一个可能的解决方案可以是:

通过在 Android 平台上添加适当的权限,打开您的项目,搜索 AndroidManifest.xml 并添加以下行:

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />

更多信息阅读this文章和this线程

【讨论】:

  • 感谢您的建议。不幸的是,我一直在与这个问题作斗争一段时间,这似乎是这些解决方案都无法解决的问题。现在解决方法就足够了。
  • 我必须进入 Extended Controls -> Location 并单击 Ionic Geolocation getCurrentPosition 函数的“发送”按钮才能接收它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-25
  • 1970-01-01
  • 2021-01-07
  • 2017-03-05
  • 1970-01-01
相关资源
最近更新 更多