appcan請求騰訊地圖,傳參經緯度逆地址解析返回數據是null的問題

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格式的數據彈出根本看不到詳情是啥

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章