1 设置
(new MyWebViewClient(webView));
2 自定义加载时的回调
/**
* 自定义回调
*/
class MyWebViewClient extends BridgeWebViewClient {
public MyWebViewClient(BridgeWebView webView) {
super(webView);
}
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
(view, url, favicon);
//();
}
@Override
public void onPageFinished(WebView view, String url) {
();
addImageClickListner();
();
if (ScrollY != 0) {
(ScrollX, ScrollY);
}
//这个是一定要加上那个的,配合scrollView和WebView的height=wrap_content属性使用
int w = (0,
);
int h = (0,
);
//重新测量
(w, h);
(view, url);
}
}
3 必须集成类
/**
* 如果要自定义WebViewClient必须要集成此类
* Created by bruce on 10/28/15.
*/
public class BridgeWebViewClient extends WebViewClient {
private BridgeWebView webView;
public BridgeWebViewClient(BridgeWebView webView) {
= webView;
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
try {
url = (url, "UTF-8");
} catch (UnsupportedEncodingException e) {
();
}
if ((BridgeUtil.YY_RETURN_DATA)) { // 如果是返回数据
(url);
return true;
} else if ((BridgeUtil.YY_OVERRIDE_SCHEMA)) { //
();
return true;
} else {
return (view, url);
}
}
// 增加shouldOverrideUrlLoading在api》=24时
@Override
public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
if (.SDK_INT >= Build.VERSION_CODES.N) {
String url = ().toString();
try {
url = (url, "UTF-8");
} catch (UnsupportedEncodingException ex) {
();
}
if ((BridgeUtil.YY_RETURN_DATA)) { // 如果是返回数据
(url);
return true;
} else if ((BridgeUtil.YY_OVERRIDE_SCHEMA)) { //
();
return true;
} else {
return (view, request);
}
}else {
return (view, request);
}
}
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
(view, url, favicon);
}
@Override
public void onPageFinished(WebView view, String url) {
(view, url);
if ( != null) {
(view, );
}
//
if (() != null) {
for (Message m : ()) {
(m);
}
(null);
}
}
}