android webview type=file文件上传,安卓端代码

http://stackoverflow.com/questions/5907369/file-upload-in-webview

http://blog.csdn.net/longlingli/article/details/16946047

  1 package com.example.cairh_sjkh_it;
  2
  3
  4 import android.app.Activity;
  5 import android.app.AlertDialog;
  6 import android.app.AlertDialog.Builder;
  7 import android.app.Notification.Action;
  8 import android.content.Intent;
  9 import android.content.res.Configuration;
 10 import android.graphics.Bitmap;
 11 import android.net.Uri;
 12 import android.os.Build;
 13 import android.os.Bundle;
 14 import android.webkit.JsResult;
 15 import android.webkit.ValueCallback;
 16 import android.webkit.WebChromeClient;
 17 import android.webkit.WebView;
 18 import android.webkit.WebViewClient;
 19
 20 public class MainActivity extends Activity {
 21     public ValueCallback<Uri> mUploadMessage;
 22     public final static int FILECHOOSER_RESULTCODE = 1;
 23      WebView webView;
 24         @Override
 25         protected void onCreate(Bundle savedInstanceState)  {
 26             super.onCreate(savedInstanceState);
 27             setContentView(R.layout.res);
 28             webView=(WebView)findViewById(R.id.webview);
 29             //js调试调试功能支持4.4版本以上的
 30            if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
 31                 WebView.setWebContentsDebuggingEnabled(true);
 32            }
 33            //js生效
 34            webView.getSettings().setJavaScriptEnabled(true);
 35            //让 h5页面中的 alert生效
 36            webView.setWebChromeClient(new WebChromeClient(){
 37                //The undocumented magic method override
 38                //Eclipse will swear at you if you try to put @Override here
 39             // For Android 3.0+
 40             public void openFileChooser(ValueCallback<Uri> uploadMsg) {
 41
 42                 mUploadMessage = uploadMsg;
 43                 Intent i = new Intent(Intent.ACTION_GET_CONTENT);
 44                 i.addCategory(Intent.CATEGORY_OPENABLE);
 45                 i.setType("image/*");
 46                 MainActivity.this.startActivityForResult(Intent.createChooser(i,"File Chooser"), FILECHOOSER_RESULTCODE);
 47
 48                }
 49
 50             // For Android 3.0+
 51                public void openFileChooser( ValueCallback uploadMsg, String acceptType ) {
 52                mUploadMessage = uploadMsg;
 53                Intent i = new Intent(Intent.ACTION_GET_CONTENT);
 54                i.addCategory(Intent.CATEGORY_OPENABLE);
 55                i.setType("*/*");
 56                MainActivity.this.startActivityForResult(
 57                Intent.createChooser(i, "File Browser"),
 58                FILECHOOSER_RESULTCODE);
 59                }
 60
 61             //For Android 4.1
 62                public void openFileChooser(ValueCallback<Uri> uploadMsg, String acceptType, String capture){
 63                    mUploadMessage = uploadMsg;
 64                    Intent i = new Intent(Intent.ACTION_GET_CONTENT);
 65                    i.addCategory(Intent.CATEGORY_OPENABLE);
 66                    i.setType("image/*");
 67                    MainActivity.this.startActivityForResult( Intent.createChooser( i, "File Chooser" ), MainActivity.FILECHOOSER_RESULTCODE );
 68
 69                }
 70                @Override
 71                public boolean onJsAlert(WebView view,String url,String message,JsResult result)
 72                {
 73                    return super.onJsAlert(view,url,message,result);
 74                } });
 75            webView.setWebViewClient(new WebViewClient(){
 76                @Override
 77                public boolean shouldOverrideUrlLoading(WebView view,String url){
 78                    // TODO Auto-generated method stub
 79                    // 使用自己的WebView组件来响应Url加载事件,而不是使用默认浏览器器加载页面
 80                    view.loadUrl(url);
 81                    return super.shouldOverrideUrlLoading(view, url);
 82                }
 83            });
 84            webView.getSettings().setDomStorageEnabled(true);
 85            webView.getSettings().setDatabaseEnabled(true);
 86
 87            webView.loadUrl("http://192.168.226.153:8080/mobile/index.htm");
 88
 89         }
 90         @Override
 91         protected void onActivityResult(int requestCode, int resultCode,
 92                                            Intent intent) {
 93          if(requestCode==FILECHOOSER_RESULTCODE)
 94          {
 95           if (null == mUploadMessage) return;
 96                    Uri result = intent == null || resultCode != RESULT_OK ? null
 97                            : intent.getData();
 98                    mUploadMessage.onReceiveValue(result);
 99                    mUploadMessage = null;
100          }
101        }
102
103         public class myWebClient extends WebViewClient
104         {
105             @Override
106             public void onPageStarted(WebView view, String url, Bitmap favicon) {
107                 // TODO Auto-generated method stub
108                 super.onPageStarted(view, url, favicon);
109             }
110
111             @Override
112             public boolean shouldOverrideUrlLoading(WebView view, String url) {
113                 // TODO Auto-generated method stub
114
115                 view.loadUrl(url);
116                 return true;
117
118             }
119
120             @Override
121             public void onPageFinished(WebView view, String url) {
122                 // TODO Auto-generated method stub
123                 super.onPageFinished(view, url);
124
125             }
126         }
127
128         //flipscreen not loading again
129         @Override
130         public void onConfigurationChanged(Configuration newConfig){
131             super.onConfigurationChanged(newConfig);
132         }
133
134         // To handle "Back" key press event for WebView to go back to previous screen.
135         /*@Override
136         public boolean onKeyDown(int keyCode, KeyEvent event)
137         {
138             if ((keyCode == KeyEvent.KEYCODE_BACK) && web.canGoBack()) {
139                 web.goBack();
140                 return true;
141             }
142             return super.onKeyDown(keyCode, event);
143         }*/
144 }
时间: 2024-10-16 05:33:08

android webview type=file文件上传,安卓端代码的相关文章

jQuery动态添加input type=file文件上传域

jQuery动态添加input type=file文件上传域,当用户需要通过网页上传多个文件的时候,动态添加文件域就显得尤其重要,本功能引入了jQuery,兼容性方面也做的不错,暂时没有限制文件域的个数,所以你可以无限制的生成文件域,直到满足你的需要. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transit

js 实现 input type=&quot;file&quot; 文件上传示例代码

在开发中,文件上传必不可少但是它长得又丑.浏览的字样不能换,一般会让其隐藏点其他的标签(图片等)来时实现选择文件上传功能 在开发中,文件上传必不可少,<input type="file" /> 是常用的上传标签,但是它长得又丑.浏览的字样不能换,我们一般会用让,<input type="file" />隐藏,点其他的标签(图片等)来时实现选择文件上传功能. 看代码: 代码如下: <!DOCTYPE html> <html x

javascript input type=file 文件上传

在JS中,input type=file 是常用的文件上传API,但感觉W3C说的不是很清楚,同时网上的资料也比较乱. 由于做微信开发,所以网页打算尽量少用第三方库或者插件,以加快网页的加载速度.因为微信企业号本身想实现的功能也很纯粹,不需要太多乱七八糟的东西. 我这里只用了JQuery. 总结如下: 1.用户选择文件后,一般只显示一个fakepath,不会显示一个完整的文件目录.用$("input[type='file']")[0].files[0].name即可显示出文件名. 2.

input type=&quot;file&quot;文件上传到后台读取

html页面(表单采用bootStrap) js部分: //更换头像时把上传的图片post方式到控制器 <script type="text/javascript"> function upload() { var files = $('input[name="fileField"]').prop('files');//获取到文件列表 if (files.length == 0) { alert('请选择文件'); return; } else { va

input type=&quot;file&quot;文件上传时得到文件的本地路劲

<!DOCTYPE html><html><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1.0,minimum-scale=1.0,user-scalable=no"> <title>上传图片预览示例

input type=&#39;file&#39;限制上传文件类型

前端与后台数据进行对接时,就避免不了要使用ajax进行http请求,常用的请求就两个post与get:然而常见的post请求的需求是文件上传,可能我一说到文件上传大家都觉得so  easy啊,没什么嘛,就是几行 js 代码就能搞定的事.是的,简单的文件上传是可以直接使用FormData()对象将文件上传:如果问题只是这么简单就好了,可能大家也都遇到过上传文件类型的限制,不知道大家有没有注意到这么简单的方法将文件类型过滤,下面直接贴代码: 1. js实现:js实现上传文件类型的限制是将允许上传的文

js 实现 input file 文件上传

<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <script src="js/jquery/jquery-1

Android使用HttpClient实现文件上传到PHP服务器,并监控进度条

上传 服务器端PHP 代码如下 : <?php $target_path = "./tmp/";//接收文件目录 $target_path = $target_path.($_FILES['file']['name']); $target_path = iconv("UTF-8","gb2312", $target_path); if(move_uploaded_file($_FILES['file']['tmp_name'], $targ

webview 不支持文件上传 &lt;input type=&quot;file&quot; /&gt;

项目中遇到文件上传的需求,IOS直接是支持的,安卓端却没反应,有些机型甚至闪退. 找了很多原因,在网上找的办法,实测可行,做个记录,知识分享. Html文件上传 <input type="file" class="uploadBtn" multiple="multiple" accept="image/jpeg"> 手机端WebView重写方法 // 1.设置WebChromeClient,重写文件上传回调 mWe