android - 使用 webview 拍照/拍照
问题描述
我有以下代码可以在移动浏览器上顺利打开,并为我提供使用相机拍照或从图库上传照片的选项:
<input type="file" accept="image/*;capture=camera"/>
我正在加载相同的内容WebView
,并进行了如下设置:
webView.webChromeClient = object : WebChromeClient() {
override fun onShowFileChooser(
webView: WebView,
filePathCallback: ValueCallback<Array<Uri>>,
fileChooserParams: FileChooserParams
): Boolean {
var takePictureIntent: Intent? = Intent(MediaStore.ACTION_IMAGE_CAPTURE)
val contentSelectionIntent = Intent(Intent.ACTION_GET_CONTENT)
contentSelectionIntent.addCategory(Intent.CATEGORY_OPENABLE)
contentSelectionIntent.type = "image/*"
if (ContextCompat.checkSelfPermission(
ctx,
Manifest.permission.CAMERA
) != PackageManager.PERMISSION_GRANTED
) {
ActivityCompat.requestPermissions(
activity,
arrayOf(Manifest.permission.CAMERA, Manifest.permission.WRITE_EXTERNAL_STORAGE),
0
)
}
val intentArray: Array<Intent?> = takePictureIntent?.let { arrayOf(it) } ?: arrayOfNulls(0)
val chooserIntent = Intent(Intent.ACTION_CHOOSER)
chooserIntent.putExtra(Intent.EXTRA_INTENT, contentSelectionIntent)
chooserIntent.putExtra(Intent.EXTRA_TITLE, "Image Chooser")
chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, intentArray)
startActivity(chooserIntent)
filePathCallback?.onReceiveValue(null)
return true
}
}
我Image chooser
正确打开如下:
但是,我有以下问题:
- 如果我用相机拍照,如何将新照片路径返回到 webview?
- 如果我从图库中挑选了一张照片,我该如何重新调整到 webview 的路径?