广告
返回顶部
首页 > 资讯 > 移动开发 >Android中的webview支持页面中的文件上传实例代码
  • 371
分享到

Android中的webview支持页面中的文件上传实例代码

文件上传webviewAndroid 2022-06-06 11:06:55 371人浏览 八月长安
摘要

Android WEBview在默认情况下是不支持网页中的文件上传功能的; 如果在网页中有<input type="file" />,在android webvie

Android WEBview在默认情况下是不支持网页中的文件上传功能的;

如果在网页中有<input type="file" />,在android webview中访问时也会出现浏览文件的按钮

但是点击按钮之后没有反应...

那么如何能够让android的webview能够响应,这个浏览按钮呢?在网上查了很多资料,很多相同的,但都漏掉了一个地方,导致无法读取到文件的完整地址(“c:\upfile\233232.jpg”),整理最终代码入下:

我们需要为webview设置WebChromeClient,在WebChromeClient的实现类中覆盖文件选择的方法:


package com.example.webviewupfile; 
import java.io.File; 
import java.io.IOException; 
import android.app.Activity; 
import android.content.ContentResolver; 
import android.content.Intent; 
import android.content.res.Configuration; 
import android.database.Cursor; 
import android.graphics.Bitmap; 
import android.net.Uri; 
import android.os.Bundle; 
import android.provider.MediaStore; 
import android.util.Log; 
import android.view.View; 
import android.webkit.ValueCallback; 
import android.webkit.WebChromeClient; 
import android.webkit.WebView; 
import android.webkit.WebViewClient; 
import android.widget.ProgressBar; 
public class MainActivity extends Activity { 
  private ValueCallback<Uri> mUploadMessage; 
  private final static int FILECHOOSER_RESULTCODE = 1; 
  private WebView web; 
  private ProgressBar progressBar; 
  @Override 
  protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    web = (WebView) findViewById(R.id.webView1); 
    progressBar = (ProgressBar) findViewById(R.id.progressBar1); 
    web = new WebView(this); 
    web.getSettings().setjavascriptEnabled(true); 
    web.loadUrl("Http://ueditor.baidu.com/website/onlinedemo.html"); 
    web.setWebViewClient(new myWebClient()); 
    web.setWebChromeClient(new WebChromeClient() { 
      // The undocumented magic method override 
      // Eclipse will swear at you if you try to put @Override here 
      // For Android 3.0+ 
      public void openFileChooser(ValueCallback<Uri> uploadMsg) { 
        mUploadMessage = uploadMsg; 
        Intent i = new Intent(Intent.ACTION_GET_CONTENT); 
        i.addCateGory(Intent.CATEGORY_OPENABLE); 
        i.setType("image*"); 
        MainActivity.this.startActivityForResult( 
            Intent.createChooser(i, "File Browser"), 
            FILECHOOSER_RESULTCODE); 
      } 
      // For Android 4.1 
      public void openFileChooser(ValueCallback<Uri> uploadMsg, 
          String acceptType, String capture) { 
        mUploadMessage = uploadMsg; 
        Intent i = new Intent(Intent.ACTION_GET_CONTENT); 
        i.addCategory(Intent.CATEGORY_OPENABLE); 
        i.setType("image 
} 
您可能感兴趣的文章:Android 解决WebView无法上传文件的问题Android WebView那些坑之上传文件示例Android WebView 上传文件支持全解析浅谈关于Android WebView上传文件的解决方案


--结束END--

本文标题: Android中的webview支持页面中的文件上传实例代码

本文链接: https://www.lsjlt.com/news/28317.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作