我正在使用phonegap几周,但是当我到地理定位服务时发现了问题。在浏览器中工作正常但编译不正常(使用build.honegap.com)。
在我的config.xml文件中,我有类似这样的内容:
Config package name, id, author, icon,etc...
<feature name="http://api.phonegap.com/1.0/device" />
<plugin name="Geolocation" value="CDVLocation" />
<plugin name="Geolocation" value="org.apache.cordova.GeoBroker" />
<feature name="http://api.phonegap.com/1.0/geolocation"/>
和androidmanifest.xml只有这个:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.me"
android:versionCode="1"
android:versionName="6.5" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="16" />
<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" />
</manifest>
仅仅是为了测试,我做了这个脚本(jquery),但只是在使用chrome浏览器。总是触发错误功能(总是输入if句子,“导航”):
document.addEventListener("deviceready", onDeviceReady(), false);
function onDeviceReady(){
if (navigator.geolocation) {
alert('Nav on');
setTimeout(function(){
navigator.geolocation.getCurrentPosition(function(position){
alert("success " + position.coords.latitude + ' , ' + position.coords.longitude)
}, function(error){
alert('code: ' + error.code + '\n' +
'message: ' + error.message + '\n');
},
{enableHighAccuracy:true});
}, 600);
}else{
alert('Nav off');
}
};
有人知道我的代码有什么问题吗?我整个周末一直都在工作,没有什么
P.S,我有一个三星galaxy s2进行测试,抱歉我的英语。我忘了说错误信息说:
代码:2
消息:无法启动地理定位服务
答案 0 :(得分:1)
首先确保您的代码没有错误! 如果你确定那么你还需要做一件事! 只需更改Android设备的安全设置即可。 转到设置 - &gt;安全 - &gt;选中“未知来源”复选框 为了让你的apk运行没有任何问题。
希望它能像我一样工作!
最好,
答案 1 :(得分:-1)
在某些Android设备上
navigator.geolocation.getCurrentPosition()
除非将enableHighAccuracy选项设置为true,否则不会返回地理位置。将调用替换为navigator.geolocation:
navigator.geolocation.getCurrentPosition(onSuccess, onError,{enableHighAccuracy: true});