摘要:本文将带你了解Android应用开发Android WebView图片文件上传的问题,希望本文对大家学Android有所帮助。
本文将带你了解Android应用开发Android WebView图片文件上传的问题,希望本文对大家学Android有所帮助。
Android使用Webview加载包含选择图片上传的网页有问题,ios正常 坑啊 最终还是解决了。
以下下在Activity里加载Webview Fragment没试原理都一样
本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:
新建AotuWebChromeClient继承WebChromeClient
openFileChooser()方法5.0以下 onShowFileChooser()方法 5.0以上
package com.dwb.renrendaipai.mywebview;
import android.net.Uri;
import android.webkit.ValueCallback;
import android.webkit.WebChromeClient;
import android.webkit.WebView;
/**解决H5图片上传问题
* Created by dwb on 2018/6/15.
*/
public class AotuWebChromeClient extends WebChromeClient{
private OpenFileChooserCallBack mOpenFileChooserCallBack;
public AotuWebChromeClient(OpenFileChooserCallBack openFileChooserCallBack) {
mOpenFileChooserCallBack = openFileChooserCallBack;
}
public void openFileChooser(ValueCallback<uri> uploadMsg, String acceptType) {
mOpenFileChooserCallBack.openFileChooserCallBack(uploadMsg, acceptType);
}
public void openFileChooser(ValueCallback<uri> uploadMsg) {
openFileChooser(uploadMsg, "");
}
public void openFileChooser(ValueCallback<uri> uploadMsg, String acceptType, String capture) {
openFileChooser(uploadMsg, acceptType);
}
public boolean onShowFileChooser(WebView webView, ValueCallback<uri[]> filePathCallback,
FileChooserParams fileChooserParams) {
return mOpenFileChooserCallBack.openFileChooserCallBackAndroid5(webView, filePathCallback, fileChooserParams);
}
public interface OpenFileChooserCallBack {
// for API - Version below 5.0.
void openFileChooserCallBack(ValueCallback<uri> uploadMsg, String acceptType);
// for API - Version above 5.0 (contais 5.0).
boolean openFileChooserCallBackAndroid5(WebView webView, ValueCallback<uri[]> filePathCallback,
FileChooserParams fileChooserParams);
}
}
</uri[]></uri></uri[]></uri></uri></uri>
Activity代码
package com.dwb.renrendaipai.mywebview;
import android.app.Activity;
import android.content.ContentResolver;
import android.content.Context;
import android.content.Intent;
import android.database.Cursor;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.provider.MediaStore;
import android.support.v4.content.FileProvider;
import android.support.v7.app.AppCompatActivity;
import android.text.TextUtils;
import android.view.KeyEvent;
import android.view.View;
import android.webkit.ValueCallback;
import android.webkit.WebChromeClient;
import android.webkit.WebResourceError;
import android.webkit.WebResourceRequest;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.LinearLayout;
import android.widget.ProgressBar;
import android.widget.TextView;
import com.dwb.renrendaipai.R;
import com.dwb.renrendaipai.activity.MainActivity;
import com.dwb.renrendaipai.application.DSLApplication;
import com.dwb.renrendaipai.utils.DSLContants;
import java.io.File;
import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.OnClick;
import static com.umeng.socialize.utils.DeviceConfig.context;
/**零元下单 图片上传
* Created by dwb on 2018/6/15.
*/
public class AoTuWebviewActivity extends AppCompatActivity{
@BindView(R.id.toorbar_layout_main_back)
LinearLayout toorbar_layout_main_back;
@BindView(R.id.toorbar_txt_main_title)
TextView toorbar_txt_main_title;
@BindView(R.id.webview)
WebView webview;
@BindView(R.id.progressbar)
ProgressBar progressbar;
private Intent mintent;
private WebSettings webSettings;
private String url, title;
///图片上传///////
private ValueCallback<uri[]> mUploadMsgForAndroid5;
private ValueCallback<uri> mUploadMsg;
private final static int FILECHOOSER_RESULTCODE = 1;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO
本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标移动开发之Android频道!
您输入的评论内容中包含违禁敏感词
我知道了
请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号