使用html5做了個應用,同時適應APP,微信和wap訪問,其中有用到獲取地理位置的相關內容,地理位置獲取沒有什麼問題,現在問題是當獲取地理位置詢問用戶時如果選擇拒絕共享地理位置,那麼下次再次登錄進入時就不會再詢問,導致如果拒絕了一次以後再也獲取不到地理位置,不知道有什麼方法可以解決?
獲取地理位置代碼如下:
//初始化時調用獲取地理位置方法
$(function(){
startgps();
});
//獲取地理位置方法
function startgps()
{
//判斷是否支持
if (navigator.geolocation)
{
navigator.geolocation.watchPosition(showgps,
// navigator.geolocation.getCurrentPosition(showgps,//成功回調函數
function(error) //失敗回調函數
{
alert("獲取位置失敗,開始執行失敗回調函數");
getPositionError(error);
//showgps();
// showAlert("獲取地理位置出錯");
},
{enableHighAcuracy: true, timeout:1000,maximumAge: 0}); // 這裡設置超時為1000毫秒,即1秒
}
else
{
showAlert("navigator.geolocation獲取結果為false");
//showgps();
}
}
function showgps(position)
{
alert("獲取位置成功,開始執行成功回調函數");
if (position)
{
var latitude = position.coords.latitude;
var longitude = position.coords.longitude;
document.getElementsByName("lat")[0].value = latitude;
document.getElementsByName("lng")[0].value = longitude;
showAlert("獲取到的地理位置為latitude:"+latitude+"---longitude="+longitude);
}
else{
showAlert("位置獲取不到,請確認您打開了定位服務!");
var latitude = position.coords.latitude;
var longitude = position.coords.longitude;
document.getElementsByName("lat")[0].value = latitude;
document.getElementsByName("lng")[0].value = longitude;
showAlert("定位服務沒有打開時獲取到的地理位置latitude:"+latitude+"---longitude="+longitude);
}
}
function getPositionError(error){
switch(error.code){
case error.TIMEOUT:
alert("連接超時,請重試");
break;
case error.PERMISSION_DENIED:
alert("您拒絕了使用位置共享服務,查詢已取消");
break;
case error.POSITION_UNAVAILABLE:
alert("親愛的火星網友,非常抱歉,我們暫時無法為您所在的星球提供位置服務");
break;
}
}
可以考慮把用戶不同意的參數重新初始化