如何隐藏或集成地理位置权限弹出按钮 (Javascript + HTML)
How to hide or integrate geolocation permission pop up into a button (Javascript + HTML)
我打算使用“允许访问我的位置”按钮来发送用户地理定位的权限请求。而不是用户点击弹出的网页,这可能看起来没有集成到整个网络 UI。
但我似乎无法绕过如下图所示的弹出窗口。
IMAGE: pop up window shows up after I clicked on the button
我更喜欢让用户单击按钮,它会一次性授予权限并绕过弹出窗口。
下面是一个简单按钮的 HTML 代码,以及用于检索用户位置的相关 Javascript 代码。里面的一些代码是为了其他功能,我很乐意接受编码实践等方面的反馈
HTML代码
<button id = "allow-Geolocation">Allow Access To My Location</button>
Javascript代码
function allowGeolocation() {
userLocation = new google.maps.InfoWindow();
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(function(p) {
var avatarPosition = {
lat: p.coords.latitude,
lng: p.coords.longitude
};
var infoWindowPosition = {
lat: avatarPosition.lat + 0.04,
lng: avatarPosition.lng
};
userLocation.setPosition(infoWindowPosition);
userLocation.setContent('Your Location');
setTimeout(function(){userLocation.close();}, 2000);
//set User Avatar
userAvatar = new google.maps.Marker({
position: avatarPosition,
icon: 'https://i.imgur.com/h2tTqOb.png',
draggable: true,
animation: google.maps.Animation.DROP,
map:map
});
userAvatar.addListener('mouseover', toggleBounce);
userAvatar.addListener('dragend', radiusSearch);
userLocation.open(map);
}, function() {
handleLocationError('Geolocation service failed', map.center());
})
}
else {
handleLocationError('No geolocation available', map.center());
}
}
document.querySelector('#allow-Geolocation').addEventListener('click', allowGeolocation);
But I can't seem to bypass the pop up like shown in the image below.
那是因为你做不到。
浏览器决定如何将其呈现给用户。你别无选择。另外,请务必注意,它的显示方式因平台而异。
我打算使用“允许访问我的位置”按钮来发送用户地理定位的权限请求。而不是用户点击弹出的网页,这可能看起来没有集成到整个网络 UI。 但我似乎无法绕过如下图所示的弹出窗口。
IMAGE: pop up window shows up after I clicked on the button
我更喜欢让用户单击按钮,它会一次性授予权限并绕过弹出窗口。
下面是一个简单按钮的 HTML 代码,以及用于检索用户位置的相关 Javascript 代码。里面的一些代码是为了其他功能,我很乐意接受编码实践等方面的反馈
HTML代码
<button id = "allow-Geolocation">Allow Access To My Location</button>
Javascript代码
function allowGeolocation() {
userLocation = new google.maps.InfoWindow();
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(function(p) {
var avatarPosition = {
lat: p.coords.latitude,
lng: p.coords.longitude
};
var infoWindowPosition = {
lat: avatarPosition.lat + 0.04,
lng: avatarPosition.lng
};
userLocation.setPosition(infoWindowPosition);
userLocation.setContent('Your Location');
setTimeout(function(){userLocation.close();}, 2000);
//set User Avatar
userAvatar = new google.maps.Marker({
position: avatarPosition,
icon: 'https://i.imgur.com/h2tTqOb.png',
draggable: true,
animation: google.maps.Animation.DROP,
map:map
});
userAvatar.addListener('mouseover', toggleBounce);
userAvatar.addListener('dragend', radiusSearch);
userLocation.open(map);
}, function() {
handleLocationError('Geolocation service failed', map.center());
})
}
else {
handleLocationError('No geolocation available', map.center());
}
}
document.querySelector('#allow-Geolocation').addEventListener('click', allowGeolocation);
But I can't seem to bypass the pop up like shown in the image below.
那是因为你做不到。
浏览器决定如何将其呈现给用户。你别无选择。另外,请务必注意,它的显示方式因平台而异。