- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在制作一个名为“Chicken Logger”的小型移动网络应用程序,用户可以在其中选择特定类型的鸡并在下一页中输入相关数据。
我的问题是我需要使用 Navigator.geolocation
来获取纬度和经度。
该代码在我的桌面 chrome 浏览器上运行良好,但在我的手机上,由于某种原因,它一直抛出错误 Location permission denied
。
我已经尝试清除并重置手机上的网站设置,但仍然无法正常工作。我确保也授予 Chrome 位置访问权限。
附言我的网络应用程序托管在我电脑的本地主机上,我已将手机连接到电脑的热点以访问本地主机。另外,我使用的是华为 Mate 20 Pro。
基本上用户一打开“入口页面”,就会被要求位置权限。但我没有得到要求。直接报错。
下面是我的JS代码:
$(document).delegate("#entry_page","pageinit",function()
{
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(onSuccess, onError);
}
});
function onSuccess(position)
{
latitude = position.coords.latitude;
longitude = position.coords.longitude;
alert(latitude);
today = new Date();
date = today.getDate()+'/'+(today.getMonth()+1)+'/'+today.getFullYear();
time = today.getHours() + ":" + today.getMinutes() + ":" + today.getSeconds();
dateTime = date+' '+time;
alert(dateTime);
}
function onError(error) {
var txt;
switch(error.code)
{
case error.PERMISSION_DENIED:
txt = 'Location permission denied';
break;
case error.POSITION_UNAVAILABLE:
txt = 'Location position unavailable';
break;
case error.TIMEOUT:
txt = 'Location position lookup timed out';
break;
default:
txt = 'Unknown position.'
}
alert(txt)
}
Nginx.conf
#user nobody;
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
#access_log logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html;
index index.html index.htm;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
#location ~ \.php$ {
# root html;
# fastcgi_pass 127.0.0.1:9000;
# fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
# include fastcgi_params;
#}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
}
# another virtual host using mix of IP-, name-, and port-based configuration
#
#server {
# listen 8000;
# listen somename:8080;
# server_name somename alias another.alias;
# location / {
# root html;
# index index.html index.htm;
# }
#}
# HTTPS server
#
#server {
# listen 443 ssl;
# server_name localhost;
# ssl_certificate cert.pem;
# ssl_certificate_key cert.key;
# ssl_session_cache shared:SSL:1m;
# ssl_session_timeout 5m;
# ssl_ciphers HIGH:!aNULL:!MD5;
# ssl_prefer_server_ciphers on;
# location / {
# root html;
# index index.html index.htm;
# }
#}
}
最佳答案
你的问题是 Geolocation API仅适用于 HTTPS
(安全上下文),不适用于 HTTP
,因此拒绝许可。
来自docs ,
This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.
另请参阅您的 Browser Compatibilty .
编辑:
要使用Nginx
启用HTTPS
,您必须生成SSL
证书并修改配置文件。关注this manual了解详细步骤。
关于javascript - Navigator.geoLocation.getCurrentPosition 不工作的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57532887/
这个问题已经有答案了: How do I return the response from an asynchronous call? (42 个回答) 已关闭 7 年前。 我正在尝试将用户当前位置置
这是我的: var position; navigator.geolocation.getCurrentPosition(onSuccess, onError); function on
我正在开发一款不断需要用户当前位置的应用程序。 我遇到了一个问题,即设备第一次获取用户当前位置的纬度和经度并将其缓存起来,我认为每次都返回相同的纬度和经度。有没有办法从设备中删除缓存位置?任何帮助将不
我一直在开发一个使用 getCurrentPosition() 的应用,但它在最新版本的 Chrome 中不再起作用,请参阅: Deprecating Powerful Features on Ins
我正在使用谷歌地理定位的 getCurrentPosition() 函数来获取用户的当前位置。 它在 Firefox 中运行良好,但在 chrome 中不起作用。 我的代码如下:: Click
我试图通过本地 IPv4 地址连接到本地计算机上托管的网站,通过 navigator.geolocation.getCurrentPosition 访问我的手机的地理位置。问题是,当从我的手机运行代码
我想从 getCurrentPosition() 方法获取坐标,以便可以在其他方法中使用它,但我无法做到这一点。 这是我的 HTML 这是我的 JavaScript 代码 var x = docum
我正在尝试初始化一个以当前用户位置为中心并带有标记的 map 。在本地,一切都很好,但是当我将 html 页面部署到 Google Appengine 时,它只显示 map ,没有地理定位....
我有一个关于 geolocation.getCurrentPosition() 的问题 我有以下代码: $(document).on('click', '#find_pickupStoresNearM
我正在使用 getCurrentPosition 获取本地纬度和经度。我知道这个函数是异步的,只是想知道如何返回可以被其他函数访问的纬度和经度值? function getGeo() {
我正在使用 android.media.MediaPlayer 在我的 Android 应用程序中播放歌曲。我的应用程序中的某些事件是在歌曲的某些部分触发的。要知道我现在在歌曲中的哪个位置,我使用 M
这个问题在这里已经有了答案: How do I return the response from an asynchronous call? (41 个回答) 关闭 7 年前。 我试图获取这些变量:
你能帮我解决这个问题吗?我有一个从 url 流式传输的搜索栏,我想在 textView 中显示 mediaplayer 的 currentTime,那么如何更新 textview 以每秒获取 curr
我的 cordova 版本是 6.3.1,我使用的是 cordova-plugin-geolocation 2.3.0。 在调用 navigator.geolocation.getCurrentPos
我尝试这个(为了在页面加载时获取当前用户位置) angular.module('ionicApp', ['ionic']) .controller('MyCtrl', function($scope)
我有这个 html 页面: Geolocation test navigator.geolocation.getCurrentPosition(functi
请教我如何解决 MediaPlayer 错误。我有 Mediaplayer、MediaController 和 listview。当我触摸列表时,歌曲会从 MediaController 开始,但是当
我遵循了 Igor Khrupin 关于使用 MediaPlayer 类在 Android 中流式传输 mp3 文件的教程:http://www.hrupin.com/2011/02/example-
我正在编写一个短音频持续时间(通常为 1-5 秒)的音频播放器,如下所示 //start media player mediaPlayer = new MediaPlayer(); mediaPlay
我正在使用一个 SeekBar 来显示音频文件的进度和搜索到某个时间。为了更新,我使用了一个 Runnable,它每隔一秒左右在 MediaPlayer 上调用 getCurrentPosition(
我是一名优秀的程序员,十分优秀!