1.請求方式
安卓手機升級8.0以後,很不明白爲什麼不支持$.ajax和$zy_json的調用,只能用appcan.request.ajax,但是ios的話對於appacan.request.ajax的支持不是很好,最好判斷一下系統,然後選擇調用
2.申請騰訊地圖祕鑰
登陸騰訊地圖開放平臺,接入指引,申請祕鑰,這個申請挺快的,但是記得要配置一下、
把這個選中,不然在電腦調試沒有權限的
3.獲取經緯度
uexLocation.openLocation("bd09",function(error) { //打開定位
uexLocation.onChange = function(lat, log){ //得到經緯度
alert(lat+','+log);
var callbackFunction = function (error, data) { //得到經緯度進行逆地址解析
if(!error){
alert('appcan');
alert(JSON.stringify(data)); //得到地址名稱(這個是appcan自帶的
}else{
alert(error);
}
}
var params = {
latitude: lat,
longitude: log,
type:"bd09",
flag:1
};
//傳遞經緯度,進行回調
uexLocation.getAddressByType(params,callbackFunction);
}
})
這一步對於請求騰訊地圖的接口就是得到經緯度的作用
4.請求騰訊地圖接口得到地址
請求地址就是https://apis.map.qq.com/ws/geocoder/v1/?location=‘lat,lng’&key=剛剛申請到的祕鑰
lat lng經緯度中間用逗號隔開
appcan.request.ajax({
url: '', //請求路徑
type:'get',
success:function(data){
alert(data+'數據')
}
})
5.打包
appcan上打包,記得勾選uexLocation(定位功能控件) 這個控件,不然是沒辦法定位的
6.結果和問題
打包完之後我測試了一下,經緯度也彈出了,但是就是數據請求不到,如下圖
我本來以爲是騰訊地圖上的權限沒開的問題,但是打開了所有權限還是不行,而且更詭異的是模擬器上可以,而且把上面那個地址寫成a標籤的形式,在手機上測試也是可以打開看到數據的,瀏覽器裏也可以
當時沒想到a標籤點擊屬於主動行爲,自己搗鼓了一上午也沒好,只能在騰訊地圖上列了個工單請求幫助了
然後寫了個原生,發現有個跨域報錯,然後。。。
7.勾選跨域控件
uexXmlHttpMgr(跨域異步請求控件) 就是這個打包的時候選上就能得到數據了
這裏面就是經緯度得到的地址了,然後就可以用了,如果想要JSON格式在請求的地址後面加一個get_poi=1就可以了,我是爲了手機彈出方便看,畢竟JSON格式的數據彈出根本看不到詳情是啥