WebView中的文件選擇

html示例

<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width,maximun-scale=1,mininum-scale=1,user-scale=1">
    <tile>文件選擇</tile>
    <style>
        .filechooser {
            width: 95%;
            height: 50px;
            -webkit-background-clip: border-box;
        }
    </style>
    <script>
        var display = function(){
            var path = document.getElementById("file_chooser").textContent;
            document.getElementById("filechooser_display").innerHTML("<b>"+path+"</b>");
        }
    </script>
</head>

<body>
<ul class="listview">
    <li class="listviewItem">
        <fieldset class="itemset">
            <input class="filechooser" id="file_chooser" type="file" accept="image/*" capture="camera" placeholder="選擇文件" onchange="display()" oninput="display()"><br>
            <p id="filechooser_display"></p>
            <div class="line_black"></div>
        </fieldset>
    </li>
</ul>
</body>

</html>

Android代碼

webChromeClient = object : WebChromeClient() {

    @Keep
    @TargetApi(Build.VERSION_CODES.HONEYCOMB)
    fun openFileChooser(
        valueCallback: ValueCallback<*>?,
        acceptType: String?) {
        Log4j.d(TAG, "#openFileChooser(Honeycomb), acceptType $acceptType")
    }

    @Keep
    @TargetApi(Build.VERSION_CODES.JELLY_BEAN)
    fun openFileChooser(
        valueCallback: ValueCallback<Uri?>?,
        acceptType: String?, capture: String?) {
        Log4j.d(TAG, "#openFileChooser(JellyBean), acceptType $acceptType, capture $capture")
        mFilePathCallback = valueCallback
    }

    @TargetApi(Build.VERSION_CODES.LOLLIPOP)
    override fun onShowFileChooser(
        webView: WebView?,
        filePathCallback: ValueCallback<Array<Uri>>?,
        fileChooserParams: FileChooserParams?
    ): Boolean {
        mFilePathCallback4Android5 = filePathCallback
        return true
    }
}

// 本地html
webView.loadUrl("file:///android_asset/fileChooser.html")

參考:
Android使用WebView加載網(wǎng)頁(yè)選擇文件上傳

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容