栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 移动开发 > Android

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

Android 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

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

如果在网页中有,在android webview中访问时也会出现浏览文件的按钮

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

那么如何能够让android的webview能够响应,这个浏览按钮呢?在网上查了很多资料,很多相同的,但都漏掉了一个地方,导致无法读取到文件的完整地址(“c:upfile233232.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 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 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 uploadMsg, 
   String acceptType, String capture) { 
 mUploadMessage = uploadMsg; 
 Intent i = new Intent(Intent.ACTION_GET_CONTENT); 
 i.addCategory(Intent.CATEGORY_OPENABLE); 
 i.setType("image 
} 


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持考高分网。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/159485.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号