我正在开发一个使用地理位置坐标的应用程序.我使用 HTML5 地理定位功能来找出网站访问者的位置,但问题在于 Chrome 不支持不安全来源的 GeoLocation.
I am developing an application which uses geolocation coordinates. I used the HTML5 geolocation feature to find out the location of the site visitor, but the issue is with Chrome which doesnt support GeoLocation on insecure origins.
function showPosition(){
if(navigator.geolocation){
navigator.geolocation.getCurrentPosition(function(position){
var positionInfo = "Your current position is (" + "Latitude: " + position.coords.latitude + ", " + "Longitude: " + position.coords.longitude + ")";
document.getElementById("result").innerHTML = positionInfo;
});
} else{
alert("Sorry, your browser does not support HTML5 geolocation.");
}
}
这里的代码 getCurrentPosition 无法使用,因为我的网站没有连接 SSL.
Here is the code getCurrentPosition is not working in as my site is not SSL connected .
Chrome 警告: getCurrentPosition() 和 watchPosition() 不再适用于不安全的来源.要使用此功能,您应该考虑将您的应用程序切换到安全来源,例如 HTTPS.
Warning by Chrome : getCurrentPosition() and watchPosition() no longer work on insecure origins. To use this feature, you should consider switching your application to a secure origin, such as HTTPS.
还有其他方法可以在 chrome 上获取坐标/LatLong 值吗?[仅在不安全的连接上]
Is there any other way to get coordinates/LatLong values on chrome ? [on Insecure connection only]
EDIT :它在我的机器上使用 localhost:80 工作,但在 http 上的测试 url 中不工作
EDIT : It is working in my machine using localhost:80 but not working in test url which is on http
var apiGeolocationSuccess = function(position) {
alert("API geolocation success!
lat = " + position.coords.latitude + "
lng = " + position.coords.longitude);
};
var tryAPIGeolocation = function() {
jQuery.post( "https://www.googleapis.com/geolocation/v1/geolocate?key=AIzaSyDCa1LUe1vOczX1hO_iGYgyo8p_jYuGOPU", function(success) {
apiGeolocationSuccess({coords: {latitude: success.location.lat, longitude: success.location.lng}});
})
.fail(function(err) {
alert("API Geolocation error!
"+err);
});
};
var browserGeolocationSuccess = function(position) {
alert("Browser geolocation success!
lat = " + position.coords.latitude + "
lng = " + position.coords.longitude);
};
var browserGeolocationFail = function(error) {
switch (error.code) {
case error.TIMEOUT:
alert("Browser geolocation error !
Timeout.");
break;
case error.PERMISSION_DENIED:
if(error.message.indexOf("Only secure origins are allowed") == 0) {
tryAPIGeolocation();
}
break;
case error.POSITION_UNAVAILABLE:
alert("Browser geolocation error !
Position unavailable.");
break;
}
};
var tryGeolocation = function() {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(
browserGeolocationSuccess,
browserGeolocationFail,
{maximumAge: 50000, timeout: 20000, enableHighAccuracy: true});
}
};
tryGeolocation();
这篇关于没有 SSL 连接的地理位置的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持html5模板网!
Angular 2:在本地 .json 文件中找不到文件Angular 2: file not found on local .json file(Angular 2:在本地 .json 文件中找不到文件)
在 Ionic 2 中,如何创建使用 Ionic 组件的自定义指In Ionic 2, how do I create a custom directive that uses Ionic components?(在 Ionic 2 中,如何创建使用 Ionic 组件的自定义指令?)
如何在 ionic2 中的 pop() 之后重新加载离子页面How to reload the ion-page after pop() in ionic2(如何在 ionic2 中的 pop() 之后重新加载离子页面)
Javascript 将 URL 转换为 BASE64 图像Javascript Convert an URL to a BASE64 Image(Javascript 将 URL 转换为 BASE64 图像)
使用模式 Angular 2 进行输入验证Input validation with pattern Angular 2(使用模式 Angular 2 进行输入验证)
如何在角度2中动态更改css类名How to change the css class name dynamically in angular 2(如何在角度2中动态更改css类名)