How to call function when user Allows or Denies access to “Physical Location”?

本小妞迷上赌 提交于 2019-11-27 06:12:00

问题


My application is powered by jQuery mobile and uses geolocation.

After my application attempts to get the user's location, the (Chrome) browser prompts the user:

Example.com wants to track your physical location [allow] [deny]

My goal is:

  1. If the user clicks "Allow", function 1 is called (location is used by app).
  2. If the user clicks "Deny", function 2 is called (address form appears).

How can I bind a function to the event that occurs (if any) when the user clicks the "Allow" or "Deny" button?


回答1:


The getCurrentPosition function accepts two function arguments. Heck, the first is executed when you allow and the other when you deny!

Documentation

http://jsfiddle.net/pimvdb/QbRHg/

navigator.geolocation.getCurrentPosition(function(position) {
    alert('allow');
}, function() {
    alert('deny');
});



回答2:


Link to Docs

function handlePermission() { navigator.permissions.query({name:'geolocation'}).then(function(result) {
if (result.state == 'granted') {
  report(result.state);
  geoBtn.style.display = 'none';
} else if (result.state == 'prompt') {
  report(result.state);
  geoBtn.style.display = 'none';
  navigator.geolocation.getCurrentPosition(revealPosition,positionDenied,geoSettings);
} else if (result.state == 'denied') {
  report(result.state);
  geoBtn.style.display = 'inline';
}
result.onchange = function() {
  report(result.state);}});}function report(state) {
 console.log('Permission ' + state);}

I hope this works.



来源:https://stackoverflow.com/questions/7463367/how-to-call-function-when-user-allows-or-denies-access-to-physical-location

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!