【发布时间】:2021-01-22 08:20:48
【问题描述】:
告诉我我在代码中做错了什么,为什么 'onShowFileChooser' 什么都不覆盖? 创建该类是为了允许 webview 从手机“webview 导入文件”上传文件。
class FileChooseClient(private val activity: ActivityChoser) : WebChromeClient() {
override fun onShowFileChooser(v: WebView?, fpc: ValueCallback<Uri>?, fcp: FileChooserParams): Boolean {
if (activity.uploadMessage != null) {
activity.uploadMessage?.onReceiveValue(null)
activity.uploadMessage = null
}
activity.uploadMessage = fpc
val intent: Intent = fcp.createIntent()
try {
activity.startActivityForResult(intent, ActivityChoser.REQUEST_SELECT_FILE)
(activity as Activity).overridePendingTransition(
android.R.anim.fade_in,
android.R.anim.fade_out
)
} catch (e: ActivityNotFoundException) {
activity.uploadMessage = null
return false
}
return true
}
interface ActivityChoser {
companion object {
const val REQUEST_SELECT_FILE = 100;
}
var uploadMessage: ValueCallback<Uri>?
fun startActivityForResult(intent: Intent, req: Int)
}
}
【问题讨论】: