【问题标题】:Why 'onShowFileChooser' overrides nothing?为什么'onShowFileChooser' 什么都不覆盖?
【发布时间】: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)
}

}

【问题讨论】:

    标签: android kotlin


    【解决方案1】:

    因为第二个参数的类型不对;它should be

    ValueCallback<Array<Uri>?>
    

    或许

    ValueCallback<Array<Uri>?>?
    

    因为文件选择器可以选择多个文件(如果我正确理解文档,Array 之后的? 肯定应该在那里)。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-19
    • 1970-01-01
    • 2011-02-28
    • 2019-07-13
    • 2013-07-05
    相关资源
    最近更新 更多