如何从WebView保存/共享图像?

时间:2018-03-13 11:22:57

标签: java android android-webview

我正在WebView的客户端生成 Blob图片并获取 Blob网址。 我需要保存并分享该图片。

是否有人了解如何在WebView中保存/共享可用作 Blob网址的图片?

1 个答案:

答案 0 :(得分:0)

使用下面的代码共享图像

if (url != null) {
                            boolean writeToStoragePermitted = true;
                            if (android.os.Build.VERSION.SDK_INT >= 23) {
                                int hasWRITE_EXTERNAL_STORAGE = parentActivity.checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE);
                                if (hasWRITE_EXTERNAL_STORAGE != PackageManager.PERMISSION_GRANTED) {
                                    writeToStoragePermitted = false;
                                    if (!parentActivity.shouldShowRequestPermissionRationale(Manifest.permission.WRITE_EXTERNAL_STORAGE)) {
                                        new AlertDialog.Builder(parentActivity)
                                                .setMessage(R.string.permissions_image)
                                                .setPositiveButton(context.getText(android.R.string.yes), new DialogInterface.OnClickListener() {
                                                    @Override
                                                    public void onClick(DialogInterface dialog, int which) {
                                                        if (android.os.Build.VERSION.SDK_INT >= 23)
                                                            parentActivity.requestPermissions(new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},
                                                                    MainActivity.REQUEST_CODE__ACCESS_EXTERNAL_STORAGE);
                                                    }
                                                })
                                                .setNegativeButton(context.getText(android.R.string.no), null)
                                                .show();
                                    } else {
                                        parentActivity.requestPermissions(new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},
                                                MainActivity.REQUEST_CODE__ACCESS_EXTERNAL_STORAGE);
                                    }
                                }
                            }
                            if (writeToStoragePermitted) {
                                final Uri local = Uri.parse(Environment.getExternalStorageDirectory() + "/Pictures/Diaspora/" + System.currentTimeMillis() + ".png");
                                new ImageDownloadTask(null, local.getPath()) {
                                    @Override
                                    protected void onPostExecute(Bitmap result) {
                                        Uri myUri = Uri.fromFile(new File(local.getPath()));
                                        Intent sharingIntent = new Intent();
                                        sharingIntent.setAction(Intent.ACTION_SEND);
                                        sharingIntent.putExtra(Intent.EXTRA_STREAM, myUri);
                                        sharingIntent.setType("image/png");
                                        sharingIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
                                        context.startActivity(Intent.createChooser(sharingIntent, getResources().getString(R.string.action_share_dotdotdot)));
                                    }
                                }.execute(url);
                            }
                        } else {
                            Toast.makeText(context, "Cannot share image: url is null", Toast.LENGTH_SHORT).show();
                        }