iphone获取phonegap地理定位始终开启
Posted
技术标签:
【中文标题】iphone获取phonegap地理定位始终开启【英文标题】:iphone gwtphonegap Geolocation always on 【发布时间】:2012-08-14 04:25:36 【问题描述】:在 gwtphonegap 1.7.0.0 (iPhone) 上,我使用地理定位服务在应用程序的开头只获取一次用户的位置
GeolocationOptions options = new GeolocationOptions();
options.setMaximumAge(1000);
options.setEnableHighAccuracy(true);
phoneGap.getGeolocation().getCurrentPosition(callback, options);
一开始只调用一次,之后不需要更新位置。
问题是,当我在 iPhone 上运行我的应用程序时,状态栏上的 GPS 指示灯一直亮着,即使我获得了正确的位置。 这可能会导致无用的电池使用。
有没有办法让 Geolocation 服务在获得位置后停止?
【问题讨论】:
【参考方案1】:似乎我们缺少 gwt phonegap 实现中的例程。我刚刚重新检查,它们不是文档的一部分。
我刚刚发布了一个关于 gwt-phonegap 项目的问题:http://code.google.com/p/gwt-phonegap/issues/detail?id=57
作为一种解决方法,您可以转到 jsni 并直接调用 start/stop 方法。
【讨论】:
知道怎么做吗?我尝试了public static native String stopGeolocation() /*- Geolocation.prototype.stop(); -*/;
之类的方法,但我不确定要调用的方法是什么。谢谢
好的,这个工作得很好:public static native String stopGeolocation() /*- if (typeof $wnd.device != "undefined" && typeof $wnd.cordova == "object") $wnd.cordova.exec("Geolocation.stopLocation"); -*/;
【参考方案2】:
底层 phonegap 库似乎有start() and stop() methods。您可能需要扩展 gwtphonegap。
【讨论】:
以上是关于iphone获取phonegap地理定位始终开启的主要内容,如果未能解决你的问题,请参考以下文章