The*_*ter 7 javascript android geolocation
这是我的基本代码:
if (navigator.geolocation) {
// WILL GET TO THIS POINT WITH TEST `ALERT()`
navigator.geolocation.getCurrentPosition(
// WILL NOT GET OT THIS POINT IN ANDROID BROWSER
function(position) {
var latitude = position.coords.latitude;
var longitude = position.coords.longitude;
}, showError, {
enableHighAccuracy: true,
timeout : 5000,
maximumAge: 0
}
);
} else {
return alert('No Geolocation Support.');
}
};
Run Code Online (Sandbox Code Playgroud)
它在iOS(Safari和Chrome)中运行良好; 以及我尝试过的所有PC浏览器.
在Android上,我尝试过HTC Browser,Chrome和Dolphin.卫星看起来像正在搜索,它停止.我甚至不记得它要求我允许使用地理位置(可能忽略了那部分)
更新:它适用于我的Nexus 10 Chrome浏览器.但不是我的HTC One X.
更新2 - 这似乎只发生在一个Android设备,AT&T HTC One X.所有其他Android设备,PC浏览器和iOS工作正常.在One XI上获取错误代码:超时.此外,GPS在此设备上工作正常.
您必须使用HTTPS
从Chrome 50开始,Chrome不再支持使用来自非安全连接提供的网页的HTML5 Geolocation API来获取用户的位置.这意味着必须从安全上下文(如HTTPS)提供进行Geolocation API调用的页面.
https://developers.google.com/web/updates/2016/04/geolocation-on-secure-contexts-only?hl=en
你的代码绝对正确.I have tested this in Android 2.3 + to latest version in different devices including HTC, Samsung, Asus tablets and Samsung tablets.即使在平板电脑中,它也能正常工作.检查设备是否具有设备中的设置share location false.当页面脚本请求位置时,浏览器将在android设备浏览器中询问用户权限.可能是你点击过,从不分享你的位置.请通过清除设备中的浏览器设置进行检查.我保证android 2.3+中没有geolocation api问题而不会搞乱安全设置.
如果问题仍然存在,并且您想要添加至少一些polyfill,请检查此https://github.com/Modernizr/Modernizr/wiki/HTML5-Cross-Browser-Polyfills并祝您好运.他们根据您的IP usig计算位置geoIP database.
| 归档时间: |
|
| 查看次数: |
9960 次 |
| 最近记录: |