防止“永远不要再问”解雇Ionic / Cordova的暂停/恢复

时间:2016-06-02 17:56:20

标签: android cordova cordova-plugins

我正在使用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会触发“恢复”文档事件,并且也会按预期运行离子的$ionicPlatform.on('resume', ...)回调。

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

Never ask again

插件does not会检查showing permission rationale。如果用户已经请求应用程序再也不要求权限,我可以做些什么来阻止暂停/恢复被JS解雇?

2 个答案:

答案 0 :(得分:1)

我相信你已经解决了这个问题,但我相信这样做的唯一方法是检测拒绝Deny许可所需的时间。实际上,检查总是完成(即使用户以前再说过Never)

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

希望有帮助吗?

答案 1 :(得分:0)

经过检查,该解决方案不会在获取地理定位权限的$ resume回调中执行任何操作。