如何将数据从活动返回到Cordova插件

js5cn81o  于 2023-02-05  发布在  其他
关注(0)|答案(3)|浏览(190)

我写了 cordova 插件调用 cordova 活动

Intent intent=new Intent(cordova.getActivity() , AndroidCamera.class);
cordova.getActivity().startActivity(intent);

我想将此Android相机活动中的一些数据返回到我的插件,以便将其发送回JavaScript。

wh6knrhe

wh6knrhe1#

在Activity for result中调用您的活动,

public void onActivityResult(int requestCode, int resultCode, Intent data) {
        Log.i(TAG, "*****  result from camera" + requestCode + " *****  " + resultCode);
        if (requestCode == REQUEST_IMAGE && resultCode == Activity.RESULT_OK) {
            if (bitmap != null) {
                     callbackContext.success(base64Image);
              }
        }

我正在转换位图到Base64图像和发送到服务器通过成功的方法。它的工作完美

izj3ouym

izj3ouym2#

请参见Cordova文档上的Android平台指南。有一个很好的例子可以回应这个信息。

callbackContext.success(message);

其中callbackContext是作为插件的 execute 参数提供的CallbackContext。
另外,如果要指示发生了错误,可以调用

callbackContext.error("Expected one non-empty string argument.");
qij5mzcb

qij5mzcb3#

默认情况下,所有CordovaPlugin都附带回调

如果你正在做一个CordovaPlugin,你扩展了CordovaPlugin类。CordovaPlugin类带有onActivityResult(int requestCode, int resultCode, Intent intent)方法,你可以在你的插件中覆盖它来获得结果。
下面是一个通用代码示例

public class MyCordovaPlugin extends CordovaPlugin{

     private int MY_REQ_CODE = 1000;

     public void someMethod(){
          Intent takePicture = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
          cordova.getActivity()startActivityForResult(takePictureIntent, MY_REQ_CODE);
     }

    
     @Override
     public void onActivityResult(int requestCode, int resultCode, Intent data) {

       if (requestCode == MY_REQ_CODE) {
           // Do you thing with Data
           log.d("MY_TAG", data);
        
       }
    }

}

相关问题