ASP源码.NET源码PHP源码JSP源码JAVA源码DELPHI源码PB源码VC源码VB源码Android源码

Android WebView 踩过的坑(1/3)

来源:网络整理     时间:2016-03-01     关键词:

本篇文章主要介绍了"Android WebView 踩过的坑",主要涉及到方面的内容,对于Javascriptjrs看球网直播吧_低调看直播体育app软件下载_低调看体育直播感兴趣的同学可以参考一下: 首先wenview大家都知道的一些API WebChromeClient是辅助WebView处理Javascript的对话框,网站图标,网站title,加载进度...

首先wenview大家都知道的一些API
Android WebView 踩过的坑
Android WebView 踩过的坑

WebChromeClient是辅助WebView处理Javascript的对话框,网站图标,网站title,加载进度等 :

onCloseWindow(关闭WebView)onCreateWindow()onJsAlert(WebView上alert是弹不出来东西的,需要定制你的WebChromeClient处理弹出)onJsPromptonJsConfirmonProgressChangedonReceivedIcononReceivedTitle
  1. WebView 文件上传,直接看代码:
webView.setWebChromeClient(new MyWebChromeClient());
private ValueCallback mUploadCallbackAboveL;
private ValueCallback mUploadMessage;

privateclassMyWebChromeClientextendsWebChromeClient {// For Android 3.0+publicvoidopenFileChooser(ValueCallback uploadMsg, String acceptType) {
            if (mUploadMessage != null) return;
            mUploadMessage = uploadMsg;
            showPhotoView();
        }
        // For Android < 3.0publicvoidopenFileChooser(ValueCallback uploadMsg) {
            openFileChooser(uploadMsg, "");
        }
        // For Android  > 4.1.1publicvoidopenFileChooser(ValueCallback uploadMsg, String acceptType, String capture) {
            openFileChooser(uploadMsg, acceptType);
        }

        // For Android 5.0+publicbooleanonShowFileChooser (WebView webView, ValueCallback filePathCallback, WebChromeClient.FileChooserParams fileChooserParams) {

            if (mUploadCallbackAboveL != null){
                returnfalse;
            }
            mUploadCallbackAboveL = filePathCallback;
            showPhotoView();
            returntrue;
        }
    }
/**
     * 自定义的文件选择框,包括相机 图库
     */privatevoidshowPhotoView() {
        photoSelectFragment = new PhotoSelectFragment();
        photoSelectFragment.setOnPhotoListItemClickListener(this);
        photoSelectFragment.setOnDismissListener(this);
        photoSelectFragment.show(getSupportFragmentManager(),
                "photoSelectFragment");
    }

当文件选择的dialog消失时或者取消时要调用以下代码,否则就会出现再次点击不再弹出选择dialog:

/**
     * 重置 mUploadMessage
     */privatevoidclearUploadCallBack(){
        if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {//5.0以下if (mUploadMessage != null){
                mUploadMessage.onReceiveValue(null);
                mUploadMessage = null;
            }

        }else {
            if(mUploadCallbackAboveL != null){
                mUploadCallbackAboveL.onReceiveValue(null);
                mUploadCallbackAboveL = null;
            }
        }
    }

2.WebView 图片延迟加载:
有些页面如果包含网络图片,在移动设备上我们等待加载图片的时间可能会很长,所以我们需要让图片延时加载,这样不影响我们加载页面的速度,同样代码说话:

定义变量:

boolean blockLoadingNetworkImage=false;

在WebView初始化的时候设置,就是这么简单就可以了:

相关图片

相关文章