将程序化Android权限请求的结果传递给cordova“callbackContext”?

时间:2017-09-30 15:51:07

标签: android cordova permissions request

我用

private void requestPermission(CallbackContext callbackContext) {
    ActivityCompat.requestPermissions(this.cordova.getActivity(),
                    new String[]{Manifest.permission.READ_EXTERNAL_STORAGE},
                    REQUEST_PERMISSION_READ_EXTERNAL_STORAGE);
}

在我的cordova插件中请求权限。现在的问题是我,如果获得结果的唯一方法是通过

,如何将结果传递给我的callbackContext
public void onRequestPermissionsResult(int requestCode,
        String permissions[], int[] grantResults) {
...}

无法再获取requestPermissions()的callbackContext?

非常感谢任何帮助!

再见

1 个答案:

答案 0 :(得分:2)

您没有将回调上下文传递给这样的回调方法,您必须将回调上下文分配给实例变量,以便在方法中可以访问它。

private CallbackContext callbackContext; // declare the instance variable

一旦你知道回调上下文(它传递给execute方法)你将它分配给变量:

public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException {
  this.callbackContext = callbackContext;
}

稍后在你的回调方法中你可以像这样使用它:

public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) {
  this.callbackContext.success(); 
}