恒美微站 Logo 恒美微站
  • 首页
  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心
  • 联系我们

Android使用WebView加载网页选择文件上传

  • 首页
  • 资讯中心
  • /
  • Android使用WebView加载网页选择文件上传

相关资讯

LeetCode15-三数之和 2026/8/2 17:55:21
FPGA 厂商开发板 Ethernet PHY/MAC 实现对比分析 2026/8/2 17:55:21
TPIC7710EVM评估板:汽车电子驻车制动电机控制开发实战指南 2026/8/2 17:55:22

最新资讯

C++ STL set容器存储pair自定义排序的三种实现方法详解
Renode实战:STM32固件纯软件硬件仿真与自动化测试
OneData方法论:构建统一数据仓库的架构设计与实战指南
情感短视频账号运营全解析:从内容生产到流量变现的实战指南
牙齿分割数据集实战:从训练集划分到模型优化全攻略
微信小程序实战:复刻发现与服务页,攻克原生开发核心难点

今日推荐

Python random 模块常用函数详解:从入门到实战
Hermes接入团队协作后,我推翻了三个效率假设
免费AI大模型调教指南:打造专属网文写作助手

本周热门

Nextcloud 桌面客户端:把同步交给它,你只管改文件
如何将 HTML 转成 Word 文档且格式不丢失?html-to-docx 使用教程
Anki 批量操作卡片完整指南:一次搞定上千张,不再逐张修改

本月精选

如何用DamaiHelper实现演唱会门票的智能自动化抢购:完整技术解决方案指南
第4篇:59 倍性能差距的索引瓶颈定位——一次教科书级的全表扫描调优
终极歌词批量下载神器:5分钟解决离线音乐库歌词同步难题

Android使用WebView加载网页选择文件上传

发布时间:2026/8/26 23:34:34
Android使用WebView加载网页选择文件上传 文章目录效果如下:网页参考代码Android代码效果如下:使用Android WebView加载网页网页中调用文件选择功能实现网页参考代码!DOCTYPE htmlhtmlheadmetacharsetutf-8metanameviewportcontentwidthdevice-width,maximun-scale1,mininum-scale1,user-scale1tile文件选择/tilestyle.filechooser{width:95%;height:50px;-webkit-background-clip:border-box;}/stylescriptvardisplayfunction(){varpathdocument.getElementById(file_chooser).textContent;document.getElementById(filechooser_display).innerHTML(bpath/b);}/script/headbodyulclasslistviewliclasslistviewItemfieldsetclassitemsetinputclassfilechooseridfile_choosertypefileplaceholder选择文件onchangedisplay()oninputdisplay()brpidfilechooser_display/pdivclassline_black/div/fieldset/li/ul/body/htmlAndroid代码importandroid.content.Intent;importandroid.net.Uri;importandroid.os.Bundle;importandroid.util.Log;importandroid.webkit.ValueCallback;importandroid.webkit.WebChromeClient;importandroid.webkit.WebSettings;importandroid.webkit.WebView;importandroidx.annotation.Nullable;importandroidx.appcompat.app.AppCompatActivity;publicclassMainActivityextendsAppCompatActivity{privateWebView mWebView;privateValueCallbackUriuploadFile;privateValueCallbackUri[]uploadFiles;OverrideprotectedvoidonCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);mWebViewfindViewById(R.id.webview);initWebView();mWebView.loadUrl(file:///android_asset/fileChooser.html);}privatevoidinitWebView(){WebSettings settingsmWebView.getSettings();settings.setJavaScriptEnabled(true);settings.setSupportZoom(false);settings.setBuiltInZoomControls(false);mWebView.setWebChromeClient(newWebChromeClient(){// For Android 3.0publicvoidopenFileChooser(ValueCallbackUriuploadMsg,String acceptType){Log.i(test,openFileChooser 1);MainActivity.this.uploadFileuploadMsg;openFileChooseProcess();}// For Android 3.0publicvoidopenFileChooser(ValueCallbackUriuploadMsgs){Log.i(test,openFileChooser 2);MainActivity.this.uploadFileuploadMsgs;openFileChooseProcess();}// For Android 4.1.1publicvoidopenFileChooser(ValueCallbackUriuploadMsg,String acceptType,String capture){Log.i(test,openFileChooser 3);MainActivity.this.uploadFileuploadMsg;openFileChooseProcess();}// For Android 5.0publicbooleanonShowFileChooser(WebView webView,ValueCallbackUri[]filePathCallback,WebChromeClient.FileChooserParams fileChooserParams){Log.i(test,openFileChooser 4:filePathCallback.toString());MainActivity.this.uploadFilesfilePathCallback;openFileChooseProcess();returntrue;}});}privatevoidopenFileChooseProcess(){Intent inewIntent(Intent.ACTION_GET_CONTENT);i.addCategory(Intent.CATEGORY_OPENABLE);i.setType(*/*);startActivityForResult(Intent.createChooser(i,上传文件),0);}OverrideprotectedvoidonResume(){super.onResume();mWebView.onResume();}OverrideprotectedvoidonPause(){super.onPause();mWebView.onPause();}OverrideprotectedvoidonActivityResult(intrequestCode,intresultCode,NullableIntent data){super.onActivityResult(requestCode,resultCode,data);if(requestCode0){if(resultCodeRESULT_OK){if(null!uploadFile){Uri resultdatanull?null:data.getData();uploadFile.onReceiveValue(result);uploadFilenull;}if(null!uploadFiles){Uri resultdatanull?null:data.getData();uploadFiles.onReceiveValue(newUri[]{result});uploadFilesnull;}}elseif(resultCodeRESULT_CANCELED){if(null!uploadFile){uploadFile.onReceiveValue(null);uploadFilenull;}}}}}核心代码是为WebView设置WebChromeClient实现openFileChooser方法mWebView.setWebChromeClient(newWebChromeClient(){// For Android 3.0publicvoidopenFileChooser(ValueCallbackUriuploadMsg,String acceptType){Log.i(test,openFileChooser 1);MainActivity.this.uploadFileuploadMsg;openFileChooseProcess();}// For Android 3.0publicvoidopenFileChooser(ValueCallbackUriuploadMsgs){Log.i(test,openFileChooser 2);MainActivity.this.uploadFileuploadMsgs;openFileChooseProcess();}// For Android 4.1.1publicvoidopenFileChooser(ValueCallbackUriuploadMsg,String acceptType,String capture){Log.i(test,openFileChooser 3);MainActivity.this.uploadFileuploadMsg;openFileChooseProcess();}// For Android 5.0publicbooleanonShowFileChooser(WebView webView,ValueCallbackUri[]filePathCallback,WebChromeClient.FileChooserParams fileChooserParams){Log.i(test,openFileChooser 4:filePathCallback.toString());MainActivity.this.uploadFilesfilePathCallback;openFileChooseProcess();returntrue;}});

关于恒美微站

恒美微站专注于为个体商户、工作室提供极简自助建站服务,让每个人都能轻松拥有专业网站。

快速链接

  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心

服务项目

  • 可视化建站
  • 拖拽编辑
  • 主题定制
  • SEO 优化
  • 网站托管

联系方式

  • 📍 地址:北京市朝阳区建国路 88 号
  • 📞 电话:400-888-8888
  • ✉️ 邮箱:info@hmyw.cn
  • 🕐 时间:周一至周日 9:00-18:00

© 2024 恒美微站 hmyw.cn 版权所有 | 京 ICP 备 12345678 号