| | |
| | | package com.hanju.video.app.util.browser; |
| | | |
| | | import android.Manifest; |
| | | import android.app.Activity; |
| | | import android.content.Context; |
| | | import android.content.Intent; |
| | | import android.content.pm.PackageManager; |
| | | |
| | | import androidx.core.app.ActivityCompat; |
| | | import androidx.core.content.ContextCompat; |
| | | |
| | | import android.graphics.Bitmap; |
| | | import android.graphics.BitmapFactory; |
| | | import android.media.MediaScannerConnection; |
| | | import android.webkit.JavascriptInterface; |
| | | import android.widget.ImageView; |
| | | import android.widget.TextView; |
| | | import android.widget.Toast; |
| | | |
| | | import com.lcjian.library.util.Environment; |
| | | import com.lcjian.library.util.common.StringUtils; |
| | | import com.hanju.video.app.util.AlibcTradeUtil; |
| | | import com.hanju.video.app.util.JumpActivityUtil; |
| | | import com.hanju.video.app.util.x5.X5WebView; |
| | | import com.lcjian.library.util.security.MD5Utils; |
| | | import com.tencent.android.tpush.horse.Tools; |
| | | |
| | | import org.json.JSONException; |
| | | import org.json.JSONObject; |
| | | |
| | | import java.io.File; |
| | | import java.io.FileOutputStream; |
| | | import java.io.IOException; |
| | | import java.io.InputStream; |
| | | import java.net.HttpURLConnection; |
| | | import java.net.URL; |
| | | import java.util.Iterator; |
| | | |
| | | public class BWJavaInterface extends BaseBWJavaInterface { |
| | |
| | | //权限未授权 |
| | | return ContextCompat.checkSelfPermission(mContext, permission) == PackageManager.PERMISSION_DENIED; |
| | | } |
| | | |
| | | @JavascriptInterface |
| | | public void savePicture(String url) { |
| | | if (lacksPermissions(Manifest.permission.READ_EXTERNAL_STORAGE, |
| | | Manifest.permission.WRITE_EXTERNAL_STORAGE)) { //存储权限未开启 |
| | | ActivityCompat.requestPermissions(mContext, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.READ_EXTERNAL_STORAGE}, 10023); |
| | | } else {//存储权限已开 |
| | | String md5 = MD5Utils.getMD532(url); |
| | | String path = Environment.getExternalStorageDirectory() |
| | | + "/hanju"; |
| | | File file = new File(path + "/" + md5 + ".jpg"); |
| | | if (!file.exists()) { |
| | | try { |
| | | File resultFile = saveImageFromPathToSdCard(mContext, url, path, md5 + ".jpg"); |
| | | if (resultFile != null) { |
| | | mContext.runOnUiThread(new Runnable() { |
| | | @Override |
| | | public void run() { |
| | | MediaScannerConnection.scanFile(mContext, new String[]{file.getAbsolutePath()}, null, null); |
| | | Toast.makeText(mContext, "保存到相册成功", Toast.LENGTH_SHORT).show(); |
| | | } |
| | | }); |
| | | } |
| | | } catch (Exception e) { |
| | | Toast.makeText(mContext, "图片保存失败", Toast.LENGTH_LONG).show(); |
| | | if (file.exists()) |
| | | file.delete(); |
| | | } |
| | | |
| | | } else { |
| | | Toast.makeText(mContext, "图片已经保存!", Toast.LENGTH_LONG).show(); |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | //创建本地保存路径 |
| | | public static File createImageFilePath(String path, String imageFileName) throws IOException { |
| | | File storageDir = new File(path); |
| | | if (!storageDir.exists()) { |
| | | storageDir.mkdir(); |
| | | } |
| | | File image = new File(storageDir, imageFileName); |
| | | return image; |
| | | } |
| | | |
| | | //保存网络图片保存到本地 |
| | | public static final File saveImageFromPathToSdCard(Context context, String image, |
| | | String path, String imageFileName) { |
| | | boolean success = false; |
| | | File file = null; |
| | | try { |
| | | file = createImageFilePath(path, imageFileName); |
| | | Bitmap bitmap = null; |
| | | URL url = new URL(image); |
| | | HttpURLConnection conn = null; |
| | | conn = (HttpURLConnection) url.openConnection(); |
| | | InputStream is = null; |
| | | is = conn.getInputStream(); |
| | | bitmap = BitmapFactory.decodeStream(is); |
| | | FileOutputStream outStream; |
| | | |
| | | outStream = new FileOutputStream(file); |
| | | bitmap.compress(Bitmap.CompressFormat.PNG, 100, outStream); |
| | | outStream.flush(); |
| | | outStream.close(); |
| | | success = true; |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } |
| | | |
| | | if (success) { |
| | | MediaScannerConnection.scanFile(context, new String[]{file.getPath()}, null, null); |
| | | return file; |
| | | } else { |
| | | return null; |
| | | } |
| | | } |
| | | |
| | | } |