appcan请求腾讯地图,传参经纬度逆地址解析返回数据是null的问题

1.请求方式

安卓手机升级8.0以后,很不明白为什么不支持$.ajax和$zy_json的调用,只能用appcan.request.ajax,但是ios的话对于appacan.request.ajax的支持不是很好,最好判断一下系统,然后选择调用

2.申请腾讯地图秘钥

登陆腾讯地图开放平台,接入指引,申请秘钥,这个申请挺快的,但是记得要配置一下appcan请求腾讯地图,传参经纬度逆地址解析返回数据是null的问题

把这个选中,不然在电脑调试没有权限的

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.请求腾讯地图接口得到地址

appcan请求腾讯地图,传参经纬度逆地址解析返回数据是null的问题

请求地址就是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.结果和问题

打包完之后我测试了一下,经纬度也弹出了,但是就是数据请求不到,如下图

appcan请求腾讯地图,传参经纬度逆地址解析返回数据是null的问题

我本来以为是腾讯地图上的权限没开的问题,但是打开了所有权限还是不行,而且更诡异的是模拟器上可以,而且把上面那个地址写成a标签的形式,在手机上测试也是可以打开看到数据的,浏览器里也可以

当时没想到a标签点击属于主动行为,自己捣鼓了一上午也没好,只能在腾讯地图上列了个工单请求帮助了

appcan请求腾讯地图,传参经纬度逆地址解析返回数据是null的问题

然后写了个原生,发现有个跨域报错,然后。。。

7.勾选跨域控件

uexXmlHttpMgr(跨域异步请求控件)   就是这个打包的时候选上就能得到数据了

appcan请求腾讯地图,传参经纬度逆地址解析返回数据是null的问题

这里面就是经纬度得到的地址了,然后就可以用了,如果想要JSON格式在请求的地址后面加一个get_poi=1就可以了,我是为了手机弹出方便看,毕竟JSON格式的数据弹出根本看不到详情是啥