html5 geolocation api:知道何时向用户请求权限以及浏览器何时尝试获取该位置

时间:2011-07-06 09:31:11

标签: api html5 permissions geolocation

我想知道html5地理位置api是否允许一种方式(一种事件或方法)来区分用户被要求获得共享其位置的权限以及何时(被授予权限)浏览器正在尝试得到这样的位置。

我想做的是:

  1. 让用户可以与我的网站分享他的位置。
  2. 当用户的浏览器要求他获得许可时,请向用户显示有关浏览器“询问栏”的操作的一些帮助。
  3. 如果用户授予权限,请显示一些加载标记,例如“......我们正在尝试获取您的位置,请继续”。
  4. 这很重要,因为:

    • 帮助业余用户总是好的。
    • 至少在firefox(没有googlegears)中,需要花费大量时间才能获得用户的位置。
    • 如果用户在其偏好设置中保存了对该问题的回答,则在尝试获取该位置时无需再次显示帮助。

    这就是我现在所做的非常简单:

    showHelp();
    navigator.geolocation.getCurrentPosition(permissionGranted, permissionDenied);
    hideHelp();
    

    但是,即使用户已经授予权限,我每次都会使用“帮助”。此外,有点尴尬的是,如果用户确实被要求获得许可然后被接受,那么“帮助标志”会一直显示,直到浏览器获得该位置。

    感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

尝试将'hideHelp'放入一个或两个回调中。见下文:

$(document).ready(function () {
    sample.showHelp();
    navigator.geolocation.getCurrentPosition(sample.getPosSuccess, sample.getPosFail);
});

var sample = {
    getPosSuccess: function () {
        sample.hideHelp();
    },
    getPosFail: function () { alert('#fail'); },
    showHelp : function () { 
          // your code here
    },
    hideHelp : function () { 
         // your code here
    }

};