一旦用户使用反应拒绝了位置共享,如何激活用户位置共享?

时间:2019-07-08 09:02:28

标签: javascript reactjs

即使在用户拒绝位置共享之后,我也想显示用于位置共享的本机浏览器弹出窗口。

考虑场景,

用户单击位置共享按钮,将显示本机浏览器弹出窗口。他可以分享位置信息,位置按钮变为绿色。

如果用户拒绝共享位置,则位置按钮应为灰色。并单击该按钮应显示本机浏览器弹出窗口...

使用下面的代码,如果我从developertools-> application-> clear站点数据中清除了站点数据,则能够再次显示本机弹出浏览器。

是否可以显示带有清除站点数据的本机浏览器弹出窗口?

下面是代码

class Location extends react.purecomponent {
    state = {
        active: false,
    };

    componentDidMount() {
       if (navigator.geolocation) {
           navigator.permissions.query({name: 
           'geolocation'}).then((result) => 
            {
               if (result.state === 'granted') {
                   this.setState({active: true});
               } else if (result.state === 'denied') {
                   this.setState({active: false});
               }
            });
        }
     }

     handle_location_btn_click = () => {
         if (navigator.geolocation) {

             navigator.permissions.query({name:'geolocation'})
             .then((result) => {
                 if (result.state === 'granted') {
                     this.setState({active: true});
                 } else if (result.state === 'prompt') {
                     navigator.geolocation
                    .getCurrentPosition(this.use_position, null);
                 } else if (result.state === 'denied') {
                     this.setState({location_active: false});
                 }
            });
         } else {
            console.log("geolocation unavailable");
         }
     };

     render = () => {       
         return (
             <button type="button" className={this.active ? ' active': 
             '')} 
             onClick={this.handle_location_btn_click}>
             </button>
         );
      };
  }

有人可以帮我吗。谢谢

1 个答案:

答案 0 :(得分:0)

否,一旦用户对特定域中的某个位置说不,就不可能