Ionic with Android Emulator:自动发送位置?

时间:2017-10-03 20:15:24

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

我的android模拟器出了问题。当我关闭并重新打开我的应用时,该位置不会自动发送。我必须进入扩展控件 - >单击位置并单击Ionic Geolocation getCurrentPosition函数的“发送”按钮以接收它。

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

1 个答案:

答案 0 :(得分:3)

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

  1. 尝试清除cordova Cache(如果您使用的是Visual Studio,则可以像工具 - >选项那样)

  2. 尝试使用enableHighAccuracy : true

  3. 添加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主题