【发布时间】:2013-06-03 16:07:13
【问题描述】:
我已经使用 JQM (1.3.1)、jQuery(1.9)、CSS3 和 javascript 编写了一个 web 应用程序,现在我正处于第二阶段,我正在使用 phone gap (2.7) 将此应用程序移植到 Apple 商店(目标 iOS( 6.1)/iPhone5 - 问题可以在 iPhone 4S/iOS 6.0 上重现
如下所示的我的地理定位代码在浏览器中执行时运行良好。
var geoOptions = { 'enableHighAccuracy': true, 'timeout': 10000, 'maximumAge': 0 };
navigator.geolocation.getCurrentPosition(geoSuccess, geoError, geoOptions);
function geoSuccess(postion)
{
//on success code here
}
function geoError(error)
{
//on error code here
}
但是,一旦通过 phonegap,我的应用就会两次请求用户访问定位服务的权限,即它显示了两次弹出窗口。因此,为了解决这个问题,我按照 stackoverflow 上的许多解决方案中的建议使用了下面的代码。
function onDeviceReady() {
navigator.geolocation.getCurrentPosition(geoSuccess, geoError,geoOptions);
}
$(function() {
document.addEventListener("deviceready", onDeviceReady, false);
});
这解决了弹出问题,但又开始了一个新问题。
问题:如果位置服务被禁用,我的代码会添加 deviceready 侦听器并等待 deviceready 事件触发,但该事件永远不会触发,它只是坐在那里。如果定位服务已打开,它将按预期工作。
以前有没有人遇到过这个问题,请您建议我您做了什么来解决它,请我已经投入了一天值得调试和研究的时间。
诚挚的问候,谢谢。
【问题讨论】:
-
大家好,有人要我吗?
标签: iphone jquery-mobile phonegap-build