【问题标题】:Prevent "Never ask again" from firing Ionic/Cordova's pause/resume防止“不再询问”触发 Ionic/Cordova 的暂停/恢复
【发布时间】:2016-06-02 17:56:19
【问题描述】:

我使用Cordova 5.1.1cordova-plugin-geolocation@2.2.0 进行地理定位,其中uses - cordova-plugin-compat 用于其Android 6+ 权限需求。

当权限弹出窗口打开时,Cordova 会按预期合理地触发“暂停”文档事件,表明视图已从应用程序离开到弹出窗口 (cordova.js):

case 'pause':
// Volume events
case 'volumedownbutton':
case 'volumeupbutton':
    cordova.fireDocumentEvent(action);  // action being "pause"

case 'resume':
    ....

当用户点击“拒绝”或“允许”时,Cordova 会触发“恢复”文档事件,并且 ionic 的 $ionicPlatform.on('resume', ...) 回调也会按预期运行。

但是,在用户点击“不再询问”后,所有后续请求精细/粗略地理定位权限的调用都会失败,而不会显示权限弹出窗口,但仍然会触发“暂停”/“恢复”记录事件,is unexpected

插件does not 可以检查showing permission rationale。如果用户已经请求应用不再请求权限,我能做些什么来防止暂停/恢复被 JS 触发?

【问题讨论】:

    标签: android cordova cordova-plugins


    【解决方案1】:

    我确定您已经解决了这个问题,但我相信唯一的方法是检测按下拒绝权限需要多长时间。实际上,检查总是会完成(即使用户之前说过再也不会)

    基本上,如果它在比人类可能(或可能)更短的时间内被按下,您就会知道它是由系统自动调用的,因为它仍然需要每次都进行检查。因此,您基本上可以区分立即按下拒绝,还是用户手动按下(这将花费几毫秒的时间)。

    希望有帮助吗?

    【讨论】:

    • 是的,我解决了,只是发现自己是个白痴。将发布明显的完整性。
    【解决方案2】:

    经检查,解决方案是不在获取地理位置权限的 $resume 回调中做任何事情。

    【讨论】:

      猜你喜欢
      • 2017-03-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-02
      • 1970-01-01
      • 2017-07-05
      • 2014-12-01
      • 2014-05-14
      相关资源
      最近更新 更多