我有有地图的cordova应用程序。当用户来映射状态时,它会询问位置权限。许多用户不想在那里提供位置,因此他们拒绝位置许可,如果第二次出现权限窗口,则会有一个复选框以防止显示。所以现在的问题是如果用户按下再次显示并拒绝,则权限总是在后台询问并拒绝它也会触发onPause onResume事件。在我的onResume事件中,我有很多检查,每次权限触发onResume时都不应该触发。
如何在权限上停止onResume触发器,或者当有权限触发器时我可以进行一些检查然后我不会触发响铃?
答案 0 :(得分:2)
通过创建和切换到新活动来显示Android运行时权限对话框。发生这种情况时,Cordova活动(即您的应用程序)将被置于后台(触发onPause事件)。当用户做出选择时,权限活动将被销毁,您的应用程序活动将恢复到前台(触发onResume事件)。
因此,您无法阻止onResume事件被触发,因为在更改前台活动时正确调用它。
你能做的就是更优雅地处理这种情况。一种方法是使用requestLocationAuthorization()的cordova-plugin-diagnostic自行处理位置许可请求。
例如,通过在请求权限之前设置一个标志并在收到权限响应后立即清除它,可以使恢复事件处理程序知道它是否因为权限请求而被恢复:
application/xml