我想在浏览器中启用地理位置时显示或隐藏html。
我想基于用户交互来执行此操作,如果他们单击“确认”,则将获得html,如果他们拒绝,则不会。
如果页面加载,并且授予了权限,我也想显示html,如果不是,则不应该。
我已经审查了以下内容。
navigator.permissions.query({name:'geolocation'}).then(function(permissionStatus) {
//console.log('geolocation permission state is ', permissionStatus.state);
permissionStatus.onchange = function() {
if (permissionStatus.state == 'granted ') {
console.log('geolocation permission state has changed to ', this.state);
}
};
});
并检查页面加载。
navigator.permissions && navigator.permissions.query({name: 'geolocation'}).then(function(PermissionStatus) {
if( PermissionStatus.state == 'granted' ) {
console.log('hello');
}
});
但是这些都没有记录。
我上面的代码也包装在(function( $ ) { })( jQuery );
中,因为我也在这里使用jQuery。为了确保这不是问题,我已除去上述所有代码,但仍然无法跟踪更改事件并无法在页面加载时检查地理位置。
if ( permissionStatus.state == 'granted' ) {
应该是
if ( this.state == 'granted ' ) {