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

QQ登录

只需一步,快速开始

查看: 1810|回复: 9

[结贴] 定位中 radius的 bug问题

[复制链接]

13

主题

74

帖子

302

积分

中级会员

Rank: 3Rank: 3

积分
302
发表于 2016-10-10 16:32:29 | 显示全部楼层 |阅读模式
这是我获取位置的代码如下:
  1. Model.prototype.getLocation = function() {
  2.                 var gpsDtd = $.Deferred();
  3.                 if (this.wxApi) {
  4.                         this.wxApi.exec().done(function(wx) {
  5.                                 wx.getLocation({
  6.                                         type : "gcj02",
  7.                                         success : function(data) {
  8.                                                 gpsDtd.resolve({
  9.                                                         longitude : data.longitude,
  10.                                                         latitude : data.latitude,
  11.                                                         radius : data.radius
  12.                                                 });
  13.                                         },
  14.                                         cancel : function(res) {
  15.                                                 alert("您拒绝授权位置信息,禁止继续操作!");
  16.                                                 justep.Shell.showPage("servicesheet");

  17.                                                 gpsDtd.resolve({
  18.                                                         longitude : 0,
  19.                                                         latitude : 0
  20.                                                 });
  21.                                         }
  22.                                 });
  23.                         }).fail(function() {
  24.                                 alert("您拒绝授权位置信息,禁止继续操作!");
  25.                                 justep.Shell.showPage("servicesheet");

  26.                                 gpsDtd.resolve({
  27.                                         longitude : 0,
  28.                                         latitude : 0
  29.                                 });
  30.                         });
  31.                 } else if (navigator.geolocation) {
  32.                         var success = function(data) {
  33.                                 // data.longtitude 经度
  34.                                 // data.latitude 纬度
  35.                                 // data.address 文字描述的地址信息
  36.                                 // data.hasRadius 是否有定位精度半径
  37.                                 // data.radius 定位精度半径
  38.                                 // data.type 定位方式
  39.                                 // data.coorType
  40.                                 gpsDtd.resolve({
  41.                                         coorType : data.coorType,
  42.                                         address : data.address,
  43.                                         longitude : data.coords.longitude,
  44.                                         latitude : data.coords.latitude,
  45.                                         radius : data.coords.radius
  46.                                 });
  47.                         };

  48.                         var fail = function(e) {
  49.                                 alert("您拒绝授权位置信息,禁止继续操作!");
  50.                                 justep.Shell.showPage("servicesheet");
  51.                                 gpsDtd.resolve({
  52.                                         longitude : 0,
  53.                                         latitude : 0
  54.                                 });
  55.                         };
  56.                         /**
  57.                          * 如果在室内 enableHighAccuracy: true 反而误差更大 如果在室外 enableHighAccuracy:
  58.                          * true 相对准确
  59.                          */
  60.                         navigator.geolocation.getCurrentPosition(success, fail);
  61.                         /*
  62.                          * var gpsWatchID = navigator.geolocation.watchPosition(success,
  63.                          * fail,{ timeout: 30*1000, maximumAge: 30000, enableHighAccuracy:
  64.                          * true});
  65.                          */
  66.                 } else {
  67.                         alert("您拒绝授权位置信息,禁止继续操作!");
  68.                         justep.Shell.showPage("servicesheet");
  69.                         gpsDtd.resolve({
  70.                                 longitude : 0,
  71.                                 latitude : 0
  72.                         });
  73.                 }
  74.                 return gpsDtd.promise();
  75.         };
复制代码
问题就出在 这个 radius  ,
同样的代码,我在 android 手机上(安卓版本4.4)就可以成功获取到地址,但是在ios的手机上(版本 iOS10)却获取不到,这是为什么呢?

1

主题

3232

帖子

1174

积分

金牌会员

Rank: 6Rank: 6

积分
1174
QQ
发表于 2016-10-10 17:55:12 | 显示全部楼层
很可能是这个IOS10的缘故,你换个低版本的IOS试一下,选确定一下,是不是因为,系统的兼容性问题
在问题解决后,希望大家可以吧解决方法也分享一下,这样可以让更多的X5开发者共同进步,谢谢大家的知识共享
回复 支持 反对

使用道具 举报

9

主题

57

帖子

155

积分

初级会员

Rank: 2

积分
155
QQ
发表于 2016-10-10 18:51:25 来自手机 | 显示全部楼层
百度以说明iOS请调用2.0
回复 支持 反对

使用道具 举报

13

主题

74

帖子

302

积分

中级会员

Rank: 3Rank: 3

积分
302
 楼主| 发表于 2016-10-11 10:44:25 | 显示全部楼层
闰土 发表于 2016-10-10 17:55
很可能是这个IOS10的缘故,你换个低版本的IOS试一下,选确定一下,是不是因为,系统的兼容性问题 ...

闰土您好,我已经把那个精度的给去掉了。一个Android上可以,一个 iOS不可以。就直接不取算了
回复 支持 反对

使用道具 举报

13

主题

74

帖子

302

积分

中级会员

Rank: 3Rank: 3

积分
302
 楼主| 发表于 2016-10-11 10:44:50 | 显示全部楼层
ss84104 发表于 2016-10-10 18:51
百度以说明iOS请调用2.0

您好,调用2.0这个需要在哪里修改我的代码呢?
回复 支持 反对

使用道具 举报

1

主题

3232

帖子

1174

积分

金牌会员

Rank: 6Rank: 6

积分
1174
QQ
发表于 2016-10-11 13:54:25 | 显示全部楼层
butterapple 发表于 2016-10-11 10:44
闰土您好,我已经把那个精度的给去掉了。一个Android上可以,一个 iOS不可以。就直接不取算了 ...

IOS10 目前在定位这里面,这个navigator.geolocation是不能用的,IOS9以下,是没有问题的,然后我问了一下,就是说,你试一下,吧HTTP请求,换成HTTPS 试一下
在问题解决后,希望大家可以吧解决方法也分享一下,这样可以让更多的X5开发者共同进步,谢谢大家的知识共享
回复 支持 反对

使用道具 举报

1

主题

3232

帖子

1174

积分

金牌会员

Rank: 6Rank: 6

积分
1174
QQ
发表于 2016-10-11 13:54:27 | 显示全部楼层
butterapple 发表于 2016-10-11 10:44
闰土您好,我已经把那个精度的给去掉了。一个Android上可以,一个 iOS不可以。就直接不取算了 ...

IOS10 目前在定位这里面,这个navigator.geolocation是不能用的,IOS9以下,是没有问题的,然后我问了一下,就是说,你试一下,吧HTTP请求,换成HTTPS 试一下
在问题解决后,希望大家可以吧解决方法也分享一下,这样可以让更多的X5开发者共同进步,谢谢大家的知识共享
回复 支持 反对

使用道具 举报

13

主题

74

帖子

302

积分

中级会员

Rank: 3Rank: 3

积分
302
 楼主| 发表于 2016-10-12 09:14:40 | 显示全部楼层
闰土 发表于 2016-10-11 13:54
IOS10 目前在定位这里面,这个navigator.geolocation是不能用的,IOS9以下,是没有问题的,然后我问了一 ...

您好,我之前其实做过这样的,之前是开发微信企业号的时候。遇到这个问题。后来用 https 就解决了在ios10下获取不到位置的问题。但是现在打包成 app 的话,您的意思是把握访问的首页 设成 https 的吗?
回复 支持 反对

使用道具 举报

1

主题

3232

帖子

1174

积分

金牌会员

Rank: 6Rank: 6

积分
1174
QQ
发表于 2016-10-12 09:27:40 | 显示全部楼层
butterapple 发表于 2016-10-12 09:14
您好,我之前其实做过这样的,之前是开发微信企业号的时候。遇到这个问题。后来用 https 就解决了在ios10 ...

这个具体我没有操作过,只知道HTTPS可以解决这个问题,具体还得楼主,亲身测试一下,才知道
在问题解决后,希望大家可以吧解决方法也分享一下,这样可以让更多的X5开发者共同进步,谢谢大家的知识共享
回复 支持 反对

使用道具 举报

13

主题

74

帖子

302

积分

中级会员

Rank: 3Rank: 3

积分
302
 楼主| 发表于 2016-10-12 15:46:18 | 显示全部楼层
闰土 发表于 2016-10-12 09:27
这个具体我没有操作过,只知道HTTPS可以解决这个问题,具体还得楼主,亲身测试一下,才知道 ...

好的,谢谢你啦。闰土 可以结帖啦
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-19 08:47 , Processed in 0.064907 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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