我正在Visual Studio中开发Cordova应用程序,并且正在使用最新版本的Apache Cordova工具。
我遇到了VS模拟器和附加工具的位置部分的问题。
我添加了一堆地理位置并让它们自动在列表中循环,但是从here下载的地理位置插件并没有接收到它。
我也试过在iOS上运行,你可以选择一些预定义的场景(跑步,骑行,高速公路骑行),并在那里按预期工作。
为了让插件在Android上的模拟器上运行,我需要勾选/启用/无论什么吗?
编辑: 这是我用来检查位置变化的一段代码:
var watchPosition = function(success, error) {
watchId = navigator.geolocation.watchPosition(success, error, { timeout: 30000 });
};
这在iOS模拟器中运行良好,但在VS Android模拟器中无效 它甚至可以在Ripple中正常工作(注册位置有时需要10-15秒)
答案 0 :(得分:0)
您可能想要尝试清除Cordova缓存。 在VS中:工具 - > 选项,Apache Cordova工具和Clear Cordova Cache。
您还可以尝试清除Ripple使用的Chrome用户目录,以防万一有一个cookie集破坏了cordova插件。您可以删除此文件夹:%AppData%\ Microsoft \ VisualStudio \ MDA \ RPL_UserData
我还建议您将Apache Cordova的VS Tools更新为here的最新版本
此外,您可以尝试这种尝试 - 我不确定它是否有帮助,但值得一试 - http://docs.telerik.com/platform/samples/Sample-Geolocation/
答案 1 :(得分:0)
尝试使用其他模拟器。 VS提供的仿真器在某些情况下往往无法正常工作,因此从VS以外的其他提供商处下载外部Android仿真器。
我推荐使用Genymotion Android模拟器 - 易于使用且加载速度相当快:https://www.genymotion.com
如何在Visual Studio中使用Genymotion的视频教程:
https://www.youtube.com/watch?v=imDT6hIyKc4
答案 2 :(得分:0)
感谢大家的尝试,但最终它变得更简单(更令人沮丧?)解决方案。
我正在阅读地理位置插件的文档,并阅读了一个名为enableHighAccuracy
的选项
我试一试,我的watchPosition
功能现在看起来像这样
navigator.geolocation.watchPosition(onSuccess, onError, {
timeout: 30000,
enableHighAccuracy: true
});
现在它就像一个魅力。希望这能帮助其他有需要的人:)