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

QQ登录

只需一步,快速开始

查看: 2393|回复: 10

[结贴] 使用网页获取用户地理位置时候,在modelload和buttonclick差异!

[复制链接]

64

主题

321

帖子

679

积分

高级会员

Rank: 4

积分
679
QQ
发表于 2016-12-19 12:00:18 | 显示全部楼层 |阅读模式
微信截图_20161219115421.png
modelload代码如下:
  1.         Model.prototype.modelLoad = function(event){
  2.                 var self = this;
  3.                 // 获取url上的code参数 - 微信授权code,用于获取微信用户信息
  4.                 var weixinCode = this.getContext().getRequestParameter("code");

  5.                 // 判断运行环境是否在X5移动客户端中,如果在移动客户端中,则当deviceready后取手机设备uuid作为用户唯一标识
  6.                 // 判断使用app运行
  7.                 if (justep.Browser.isX5App) {
  8.                         this._deviceType = "app";

  9.                         CommonUtils.attachDoubleClickExitApp(function() {
  10.                                 if (self.comp('contents').getActiveIndex() === 0) {
  11.                                         return true;
  12.                                 }
  13.                                 return false;
  14.                         });
  15.                         document.addEventListener("deviceready", function() {
  16.                                 self._userID = window.device.uuid;
  17.                                 self._userDefaultName = "新用户(来自X5APP的用户)";
  18.                         }, false);
  19.                         alert('x5 appload')

  20.                 } else if (weixinCode !== "") {
  21.                         this._deviceType = "wx";
  22.                         // 判断微信环境
  23.                         if (justep.Browser.isWeChat) {
  24.                                 this.wxApi = new navigator.WxApi("wx3fb4a0dd8ea0730c");
  25.                         }
  26.                         alert('微信环境中');

  27.                 } else {
  28.                         alert('浏览器环境');
  29.                         debugger;
  30.                         window.navigator.geolocation.getCurrentPosition(                //网页获取
  31.                         function(position){
  32.                         var cords = position.coords;
  33.                             alert("当前经度:"+cords.longitude +", 纬度:"+cords.latitude);
  34.                         },
  35.                         function(error){
  36.                             var errorTypes={1:"位置服务被拒绝", 2:"获取不到位置信息", 3:"获取位置信息超时"};
  37.                             alert( errorTypes[error.code] +":,不能确定当前地理位置");
  38.                         }
  39.                       );                       
  40.                         }
  41.         };
复制代码
使用buttonclick事件代码:
  1. /////////////////////////////////////////////////网页点击按钮获取地理位置
  2.         Model.prototype.button1Click = function(event){
  3.            debugger;
  4.            window.navigator.geolocation.getCurrentPosition(                //网页获取
  5.             function(position){
  6.             var cords = position.coords;
  7.                 alert("当前经度:"+cords.longitude +", 纬度:"+cords.latitude);
  8.             },
  9.             function(error){
  10.                 var errorTypes={1:"位置服务被拒绝", 2:"获取不到位置信息", 3:"获取位置信息超时"};
  11.                 alert( errorTypes[error.code] +":,不能确定当前地理位置");
  12.             }
  13.         );
  14.         };
  15. /////////////////////////////////////////////////网页点击按钮获取地理位置
复制代码
代码是一样的,在debugger调试的时候,modelload中的代码直接跳过了,而buttonclick就可以正常获取到?这是什么原因?

微信截图_20161219115853.png


发表于 2016-12-19 14:36:38 | 显示全部楼层
不可能的吧!获取地理位置是cordova 插件提供的能力!
在浏览器中应该会报错  undefind 才对
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

64

主题

321

帖子

679

积分

高级会员

Rank: 4

积分
679
QQ
 楼主| 发表于 2016-12-19 14:58:25 | 显示全部楼层
我使用的是浏览器的地理位置支持能力,
window.navigator.geolocation.getCurrentPosition()
,而且使用buttonclick是可以获取到的,浏览器地址栏已经显示出位置的图标了!就是在modelload里没有反应,代码都是一样的!
回复 支持 反对

使用道具 举报

64

主题

321

帖子

679

积分

高级会员

Rank: 4

积分
679
QQ
 楼主| 发表于 2016-12-19 14:59:13 | 显示全部楼层
liangyongfei 发表于 2016-12-19 14:36
不可能的吧!获取地理位置是cordova 插件提供的能力!
在浏览器中应该会报错  undefind 才对 ...

我使用的是浏览器的地理位置支持能力,
window.navigator.geolocation.getCurrentPosition()
,而且使用buttonclick是可以获取到的,浏览器地址栏已经显示出位置的图标了!就是在modelload里没有反应,代码都是一样的!
回复 支持 反对

使用道具 举报

发表于 2016-12-19 15:51:36 | 显示全部楼层
ufo1982ufo 发表于 2016-12-19 14:59
我使用的是浏览器的地理位置支持能力,
window.navigator.geolocation.getCurrentPosition()
,而且使用bu ...

那就是modelload的时候
浏览器的地理位置支持能力 还没有初始化完毕,所以没反应,也没有报错信息吗???
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

64

主题

321

帖子

679

积分

高级会员

Rank: 4

积分
679
QQ
 楼主| 发表于 2016-12-21 10:01:40 | 显示全部楼层
liangyongfei 发表于 2016-12-19 15:51
那就是modelload的时候
浏览器的地理位置支持能力 还没有初始化完毕,所以没反应,也没有报错信息吗?? ...

没有报错信息,开了debugger,打开网页后一会再浏览器地址栏显示了追踪位置的图标,一直没有动静,如果点击按钮马上就可以显示经纬度信息了。
console只有这些!
  1. :8080/x5/UI2/v_f601a78bda39492fa667e9f7e0a31f77l_zh_CNs_d_m/UFO/MFXXL/infolist.w?device=m:113 Synchronous XMLHttpRequest on the main thread is deprecated because of its detrimental effects to the end user's experience. For more help, check http://xhr.spec.whatwg.org/.
复制代码
回复 支持 反对

使用道具 举报

64

主题

321

帖子

679

积分

高级会员

Rank: 4

积分
679
QQ
 楼主| 发表于 2016-12-21 10:29:56 | 显示全部楼层
liangyongfei 发表于 2016-12-19 15:51
那就是modelload的时候
浏览器的地理位置支持能力 还没有初始化完毕,所以没反应,也没有报错信息吗?? ...

如你所说,应该是modelload有初始化过程,在ie和edge里需要一小段 时间,但是一会来看位置信息就都没有了,又是什么原因?
微信截图_20161219102216.png 微信截图_20161219102805.png

在chrome里是可以通过sensor模拟输出位置信息,在chromium里模拟了就是没有输出又是怎么回事?默认的调试工具可是chromium啊!
微信截图_20161219102457.png
回复 支持 反对

使用道具 举报

发表于 2016-12-21 11:18:21 | 显示全部楼层
ufo1982ufo 发表于 2016-12-21 10:29
如你所说,应该是modelload有初始化过程,在ie和edge里需要一小段 时间,但是一会来看位置信息就都没有了 ...

建议在APP中真机调试实现吧!因为你调用的是cordova插件提供的方法!在浏览器中调用的应该是浏览器提供的方法才对!!上网搜下,标准web是如何调用的!??

你说的一会儿有一会儿没的!是点击事件中也没有了?获取不到了吗?
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

64

主题

321

帖子

679

积分

高级会员

Rank: 4

积分
679
QQ
 楼主| 发表于 2016-12-21 15:58:35 | 显示全部楼层
liangyongfei 发表于 2016-12-21 11:18
建议在APP中真机调试实现吧!因为你调用的是cordova插件提供的方法!在浏览器中调用的应该是浏 ...

到这里都还正确。 微信截图_20161219102216.png

F10走完后就不见了,是什么情况?代码应该没有问题吧?
微信截图_20161219102457.png

不知道是什么情况,在edge里情况,在chromium这些显示不出来了!

回复 支持 反对

使用道具 举报

发表于 2016-12-21 16:08:49 | 显示全部楼层
ufo1982ufo 发表于 2016-12-21 15:58
到这里都还正确。

F10走完后就不见了,是什么情况?代码应该没有问题吧?

上网查下吧!有可能和浏览器支持能力有关!
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-25 18:54 , Processed in 0.073669 second(s), 26 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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