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ù)。