起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1186|回复: 1

[处理中3] app打包成ios应用后,百度地图api地址逆解析回掉函数未回调

[复制链接]

104

主题

369

帖子

1173

积分

金牌会员

王小二

Rank: 6Rank: 6

积分
1173
QQ
发表于 2016-6-30 15:09:08 | 显示全部楼层 |阅读模式
本帖最后由 w1017894741 于 2016-6-30 15:16 编辑

版本: 3.4
百度api版本: 2.0
使用的ak: x5的geolocation  demo中提供的ak(自己申请了一个浏览器端的ak也经过测试,问题依然)。
               下图为申请的设置:  
                ak码:  YefAEHqBry9DCRwwZuA3Xb875CNGGG9j

                  1.png

0 描述: 安卓正常,ios出错,具体错误请看   1.4

1 问题:
  1.1  用navigator.geolocation.getCurrentPosition获取经纬度
      
  1.2  在自定义的amd规范js中引入百度api(有时候正常,有时候报错,可能是我常修改测试的原因:can't find 'BMap'):
  1.    /**
  2.      * 动态创建script标签,引入百度api
  3.      */
  4.     var script = document.createElement("script");
  5.     script.type = "text/javascript";
  6.     script.src = "http://api.map.baidu.com/api?v=2.0&ak=EzfQTH533pbevnhohMX4QZRK";
  7.     document.body.appendChild(script);
复制代码
1.3  gps经纬度转换百度经纬度:
  1. var longitude = position.coords.longitude;// 经度
  2.                                         var latitude = position.coords.latitude;// 纬度

  3.                                         var gpsPoint = new BMap.Point(longitude, latitude);
  4.                                         // 原始坐标转换为百度坐标(一定要等待地图加载完成之后才能进行)
  5.                                         var convertor = new BMap.Convertor();
  6.                                         var pointArr = [];
  7.                                         pointArr.push(gpsPoint);
  8.                                         convertor.translate(pointArr,1,5,translateCallback);// 开始转换坐标
  9.                                         // 坐标转换完之后的回调函数
  10.                                         function translateCallback(data) {
  11.                                                 var lng = data.points[0].lng;// 转换后的百度经度
  12.                                                 var lat = data.points[0].lat;// 转换后的百度维度
  13.                                                 var newPoint = new BMap.Point(lng , lat );// 生成点
  14. }
复制代码

  1.4 问题出现,值得提的是,Geocoder对象和getLocation方法都可以正常获取到(alert做过测试):  ---------------------地址逆解析------------------------
  1.         var geoc = new BMap.Geocoder();// 获取位置对象

  2.                                                 geoc.getLocation(newPoint , function(rs) {// 地址逆解析
  3.        //------------------问题出现-------------------------
  4.                                                               alert(rs);     //从这里开始未执行
  5.                                                              var addComp = rs.addressComponents;
  6.                                                               province = addComp.province;
  7.                                                               city = addComp.city;
  8.                                                               section = addComp.district;
  9.                                                               street = addComp.street;// addComp.streetNumber
  10.        location = rs.address;
  11.                                                               alert(location);
  12. });
复制代码



2 有几个问题想问(本人由于技术和经验不足,无法定位到问题,烦请大神耐心详细指教!):
   2.1  x5 demo中的ak是什么版本的,android ak,ios ak,服务端ak 还是 浏览器端的ak?
   2.2  是否x5 APP打包成  安卓应用 和 苹果应用后,需要使用相应系统版本的 ak?
   2.3  我申请的浏览器端的 ak 有没有问题? 应用名指的是什么?是否需要和打包的app包名保持一致?
   2.4  出现这个问题的原因是否是因为不兼容ios?或者是其他什么问题?
   2.5  我通过动态创建script标签通过其src引入百度的api的方法是否正确?
   2.6  出现我这个问题的原因是否会和 ios的证书 或者 授权什么的有关系? 这块我同事做的,而他只会打包,平时不从事app开发。
   2.7  最重要的一个问题如何正确的在 amd 规范的 js中引入普通无规范的js 文件?反过来又如何?



3 问题:   为什么模式二打包后把资源部署到服务端后,打开app每次都会下载资源,并且在数据网络下会被阻止更新,这样如果人在外面使用app,并且未连接wifi,就无法更新资源。

4附件为我写的一个公共js,代码全在里面
   




position.zip

1.23 KB, 下载次数: 66

<a href="#自我介绍"/>点点点</a>
发表于 2016-6-30 17:57:48 | 显示全部楼层
看上去你是3.3的版本吧!!建议下载新版本看看吧!!有提供了一些案例
/UI2/system/components/justep/bmap/demo/mainActivity.w
应该可以实现你的需求!
2.你说的ak是指的什么??没听说过,麻烦描述清楚些。
2.1 x5打包的app ,在手机上运行的时候是使用的手机系统自带的内核浏览器!当然如果打包增强型浏览器的话就是使用自己的浏览器运行了!
2.2 不需要!直接安装使用就行!设备要求Android 4.0以上  ios 6.0以上
2.3 应用名就是app安装后,手机桌面显示的名称,
2.4 建议您使用新版本试试吧!可能存在bug
2.5 参考:http://doc.wex5.com/js-module-01/
2.6 如果app青铜功能都能正常使用!说明证书没问题!
2.7 http://doc.wex5.com/js-module-01/ 文档中有介绍!

3.模式2是实时更新资源的!但是资源版本没变的话会优先访问本地资源!模式2要求不能断网!因为是同步访问服务器的!模式一可以断网!(但是ajax请求要求网络,也必须要有网的!)

qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2025-6-12 23:55 , Processed in 0.057726 second(s), 26 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表