fer2005
fer2005
  • 发布:2015-05-07 16:37
  • 更新:2017-08-30 09:17
  • 阅读:2970

使用plus.geolocation.getCurrentPosition方法在Android机器上卡死

分类:HTML5+

我在页面中有这样一段代码:

                               plus.geolocation.getCurrentPosition(function(position) {  
				var codns = position.coords;//获取地理坐标信息;  
					var lat = codns.latitude;//获取到当前位置的纬度;  
					var lon = codns.longitude;//获取到当前位置的经度					  
					$("#positionVal").val(lon.toFixed(4)+','+lat.toFixed(4));  
				},function(e){  
					console.log("get position failed!"+e.message);  
					var lon=116.469514+Math.random()/10;  
					var lat=39.880386+Math.random()/10;  
					$("#positionVal").val(lon.toFixed(4)+','+lat.toFixed(4));  
				});

这段代码在ios上测试没有问题,但是在Android系统上会出现卡死的情况,既不进入第一个正确回调方法,也不进入第二个错误回调方法。在Android 4.4.2和Android4.2.2的系统中均出现此问题,有哪位同学遇到过吗?

2015-05-07 16:37 负责人:无 分享
已邀请:
sayHello

sayHello

试着加上options吧。android上定位加了就快多了,否则机型不同行为也不同

肥羊

肥羊

解决了吗,这问题我也遇到了,IOS是可以,android就是有问题

jqr

jqr

我也是的,成功失败两个回调都不进!!!整个就跑飞。在项目我是定位前打开遮罩,在成功失败两回调隐藏遮罩。结果是遮罩打开了,却没进隐藏回调,遮罩层就一直再那转,,无语了!!

mackes

mackes

同问,顶一下

jackybian

jackybian -


我在ios真机器测试 是可以获取到地址的,但是,模拟机上测试获取不到,我写来try也不报错,也不执行里面的方法,很奇怪
。于是我这样写:

//TODO 模拟机上不报错,也不执行,是什么情况??????  
		let n = null;  
		function geoInf(position) {  
			let _city = position.address.city.split("市")[0] || '上海';  
			let _country_id = "";  
			if (position.address.country === "中国") {  
				_country_id = "CN";  
			}  
  
			T.ajaxWeather(_city, _country_id);  
			T.ajaxKVbg(_city);  
			n = 1;  
		}  
		plus.geolocation.getCurrentPosition(geoInf, function (e) {  
			T.getCity();  
		}, {  
			geocode: true  
		});  
		setTimeout(()=>{  
			if(!n){  
				T.getCity();  
			}  
		},500);
  • 前端_小白

    楼主的这个问题解决了吗?我现在是联机调试的时候没问题,打包apk安装到手机之后就获取不到地理位置信息,你的这个是怎么解决的?


    2018-05-17 08:45

该问题目前已经被锁定, 无法添加新回复