add H5 saveBase64Image method
This commit is contained in:
@@ -1,13 +1,19 @@
|
||||
package com.mango.moshen.ui.webview;
|
||||
|
||||
import android.Manifest;
|
||||
import android.content.ClipData;
|
||||
import android.content.ClipboardManager;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.graphics.Bitmap;
|
||||
import android.graphics.BitmapFactory;
|
||||
import android.media.MediaRecorder;
|
||||
import android.net.Uri;
|
||||
import android.os.Build;
|
||||
import android.os.Environment;
|
||||
import android.os.Looper;
|
||||
import android.text.TextUtils;
|
||||
import android.util.Base64;
|
||||
import android.util.Log;
|
||||
import android.webkit.JavascriptInterface;
|
||||
import android.webkit.WebView;
|
||||
@@ -17,6 +23,7 @@ import com.alibaba.fastjson.JSONObject;
|
||||
import com.alibaba.security.realidentity.RPEventListener;
|
||||
import com.alibaba.security.realidentity.RPResult;
|
||||
import com.alibaba.security.realidentity.RPVerify;
|
||||
import com.mango.xchat_android_library.utils.file.JXFileUtils;
|
||||
import com.netease.nim.uikit.common.util.log.LogUtil;
|
||||
import com.orhanobut.logger.Logger;
|
||||
import com.umeng.commonsdk.statistics.common.DeviceConfig;
|
||||
@@ -545,4 +552,39 @@ public class JSInterface {
|
||||
if (mActivity instanceof TarotPayWebViewActivity) mActivity.finish();
|
||||
}
|
||||
|
||||
@JavascriptInterface
|
||||
public void saveBase64Image(String imageBase64) {
|
||||
mActivity.runOnUiThread(() ->
|
||||
mActivity.checkPermission(
|
||||
Manifest.permission.WRITE_EXTERNAL_STORAGE,
|
||||
Manifest.permission.READ_EXTERNAL_STORAGE
|
||||
)
|
||||
.subscribe(aBoolean -> {
|
||||
if (aBoolean) {
|
||||
try {
|
||||
byte[] decode = Base64.decode(imageBase64.split(",")[1], Base64.DEFAULT);
|
||||
Bitmap resource = BitmapFactory.decodeByteArray(decode, 0, decode.length);
|
||||
File file = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);
|
||||
String imgFileName = file + File.separator + System.currentTimeMillis() + ".jpg";
|
||||
JXFileUtils.saveBitmapToJPG(resource, imgFileName);
|
||||
Intent intent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
|
||||
Uri uri = Uri.fromFile(new File(imgFileName));
|
||||
intent.setData(uri);
|
||||
context.sendBroadcast(intent);
|
||||
callbackSaveBase64ImageResult(1);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
callbackSaveBase64ImageResult(0);
|
||||
}
|
||||
} else {
|
||||
callbackSaveBase64ImageResult(0);
|
||||
}
|
||||
})
|
||||
);
|
||||
}
|
||||
|
||||
private void callbackSaveBase64ImageResult(int result) {
|
||||
mWebView.evaluateJavascript("saveBase64ImageCallback(" + result + ")", null);
|
||||
}
|
||||
|
||||
}
|
||||
|
Reference in New Issue
Block a user