javascript - 如何在网络应用程序中请求用户对 html5 geolocation api 的许可?

标签 javascript android html google-chrome geolocation

我有这段代码可以使用 html5 地理定位

    this.getCurrentLocation = function(callback) {
        if (navigator.geolocation) {
            navigator.geolocation.getCurrentPosition(function (pos) {
                callback({
                    'lat' : pos.coords.latitude,
                    'lng' : pos.coords.longitude        
                });
            }, function (error) {
                switch(error.code) {
                    case error.PERMISSION_DENIED:
                        alert("Could not get your location. User denied the request for Geolocation.");
                        break;
                    case error.POSITION_UNAVAILABLE:
                        alert("Could not get your location. Location information is unavailable.");
                        break;
                    case error.TIMEOUT:
                        alert("Could not get your location. The request to get user location timed out.");
                        break;
                    case error.UNKNOWN_ERROR:
                        alert("Could not get your location. An unknown error occurred.");
                        break;
                    default:
                        alert("Could not get your location. An unknown error occurred.");
                }
                callback(null);
            }, {
                maximumAge: 500000, 
                enableHighAccuracy:true, 
                timeout: 6000
            });
        }
    };

我正在 Android 手机上的 chrome 浏览器上对其进行测试。但它马上就说用户拒绝了许可。它甚至不问我是否要允许它。我怎样才能让它请求许可。我在网站设置中,该位置也应该请求许可。

如果我在桌面上尝试,它会起作用。

谁知道这是怎么回事?

谢谢

最佳答案

这不是通过 HTML 或 JavaScript 完成的(这是一件好事)。它必须通过用户的应用程序设置来完成。否则,开发人员将能够绕过用户的意愿,将接受使用位置服务的代码编码到他们的应用程序中。

关于javascript - 如何在网络应用程序中请求用户对 html5 geolocation api 的许可?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42043363/

相关文章:

javascript - 访问多维 JavaScript 对象中的子键

javascript - 我可以在页面上画一条线吗?

javascript - 更改高度后如何修复输入类型日期的上下控件/旋转

javascript - Ajax,如何从 HTML 表单获取数据

javascript - 用于 Rails 的类似 Stack Overflow 的标签选择器

javascript - $(document).innerHeight() 和 $(window).innerHeight() 不适用于移动设备

java - 使用之前生成的 token 在 Android 应用程序中进行 Dropbox 身份验证

android - 为什么 Android NDK 会错过某些 API 级别?

java - "An unknown server-side error"当尝试启动真正的 Android 手机的 Android 应用程序时

javascript - 无法通过javascript更改html属性