override fun onShowFileChooser(
webView: WebView?,
filePathCallback: ValueCallback<Array<Uri>>,
fileChooserParams: WebChromeClient.FileChooserParams
): Boolean {
uploadMessage = filePathCallback
val contentSelection = Intent(Intent.ACTION_GET_CONTENT)
contentSelection.addCategory(Intent.CATEGORY_OPENABLE)
contentSelection.setType("image/*");
contentSelection.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true)
val chooserIntent = Intent(Intent.ACTION_CHOOSER)
chooserIntent.putExtra(Intent.EXTRA_INTENT, contentSelection)
chooserIntent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true)
chooserIntent.putExtra(Intent.EXTRA_TITLE, "이미지를 선택해주세요.")
chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, arrayOf(contentSelection))
try {
startActivityForResult(chooserIntent, REQUEST_SELECT_FILE)
} catch (e: ActivityNotFoundException) {
uploadMessage = null
Toast.makeText(this@MainActivity, "Cannot Open File Chooser", Toast.LENGTH_LONG)
.show()
return false
}
return true
}
Это мой метод onShowFileChooser. Это работает хорошо. Также я могу выбрать несколько изображений в поиске файлов.
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
if (requestCode == REQUEST_SELECT_FILE && resultCode == Activity.RESULT_OK) {
uploadMessage?.onReceiveValue(
WebChromeClient.FileChooserParams.parseResult(
resultCode,
data
)
)
uploadMessage = null
} else {
uploadMessage?.onReceiveValue(null)
}
}
Это мой метод onActivityResult. Этот метод возвращает только одно изображение. Если я выберу более 1 изображения, он вернет что угодно. Как я могу справиться с этим?