2021-08-06 onActivityResult在React-Native使用

import android.app.Activity;

import android.content.Intent;

import android.net.Uri;

import android.provider.MediaStore;

import com.facebook.react.bridge.ActivityEventListener;

import com.facebook.react.bridge.Promise;

import com.facebook.react.bridge.ReactApplicationContext;

import com.facebook.react.bridge.ReactContextBaseJavaModule;

import com.facebook.react.bridge.ReactMethod;

import java.io.File;

public class ImageCropModuleextends ReactContextBaseJavaModuleimplements ActivityEventListener{

private static final String ACTION= "ImageCrop";

private static final int REQUEST_CODE_CROP_PICTURE= 0;

private Promise mPromise;

public ImageCropModule(ReactApplicationContext reactApplicationContext){

super(reactApplicationContext);

reactApplicationContext.addActivityEventListener(this);

}

@ReactMethod

    public void crop(String imagePath, Promise promise){

mPromise=promise;

Uri dest= Uri.fromFile(new File(getCurrentActivity().getCacheDir(), System.currentTimeMillis()+ "_cropped" + imagePath.substring(imagePath.lastIndexOf("."))));

CropIntentQM intent= new CropIntentQM();

intent.setImagePath(Uri.parse(imagePath));

intent.setOutputPath(dest);

        getCurrentActivity().startActivityForResult(intent.getIntent(getCurrentActivity()), REQUEST_CODE_CROP_PICTURE);

}

@Override

 public void onActivityResult(Activity activity,int requestCode,int resultCode, Intent data) {

if(requestCode==REQUEST_CODE_CROP_PICTURE){

if(resultCode== Activity.RESULT_OK){

Uri croppedUri= data.getExtras().getParcelable(MediaStore.EXTRA_OUTPUT);

mPromise.resolve(croppedUri.toString());

}else if(resultCode== Activity.RESULT_CANCELED){

mPromise.reject(String.valueOf("cancel"));

}else {

mPromise.reject(String.valueOf(404));

}

}

}

@Override

    public void onNewIntent(Intent intent) {

//

    }

@Override

    public StringgetName() {

returnACTION;

}

}

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容