package com.example.basecore.widget;
|
|
import android.content.Context;
|
import android.content.res.Configuration;
|
import android.os.Build;
|
import android.util.AttributeSet;
|
import android.webkit.WebSettings;
|
import android.webkit.WebView;
|
import android.webkit.WebViewClient;
|
|
|
/**
|
* x5在10.0版本会崩溃
|
* 现为普通webview
|
*/
|
public class X5WebView extends WebView {
|
private WebViewClient client = new WebViewClient() {
|
/**
|
* 防止加载网页时调起系统浏览器
|
*/
|
public boolean shouldOverrideUrlLoading(WebView view, String url) {
|
view.loadUrl(url);
|
return true;
|
}
|
};
|
|
public X5WebView(Context context) {
|
super(getFixedContext(context));
|
this.setWebViewClient(client);
|
initWebViewSettings();
|
}
|
|
public X5WebView(Context context, AttributeSet attrs) {
|
super(getFixedContext(context), attrs);
|
this.setWebViewClient(client);
|
initWebViewSettings();
|
}
|
|
public X5WebView(Context context, AttributeSet attrs, int defStyleAttr) {
|
super(getFixedContext(context), attrs, defStyleAttr);
|
initWebViewSettings();
|
}
|
|
private void initWebViewSettings() {
|
WebSettings webSetting = this.getSettings();
|
webSetting.setJavaScriptEnabled(true);
|
webSetting.setJavaScriptCanOpenWindowsAutomatically(true);
|
webSetting.setAllowFileAccess(true);
|
webSetting.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.NARROW_COLUMNS);
|
webSetting.setSupportZoom(true);
|
webSetting.setBuiltInZoomControls(true);
|
webSetting.setUseWideViewPort(true);
|
webSetting.setSupportMultipleWindows(true);
|
webSetting.setLoadWithOverviewMode(true);
|
webSetting.setDatabaseEnabled(true);
|
webSetting.setDomStorageEnabled(true);
|
webSetting.setGeolocationEnabled(true);
|
// webSetting.setPageCacheCapacity(IX5WebSettings.DEFAULT_CACHE_CAPACITY);
|
webSetting.setPluginState(WebSettings.PluginState.ON);
|
// webSetting.setRenderPriority(WebSettings.RenderPriority.HIGH);
|
webSetting.setCacheMode(WebSettings.LOAD_NO_CACHE);
|
|
webSetting.setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
|
|
webSetting.setBlockNetworkImage(false);
|
|
// this.getSettingsExtension().setPageCacheCapacity(IX5WebSettings.DEFAULT_CACHE_CAPACITY);//extension
|
}
|
|
|
/**
|
* 5.1版本找不到rescourceid 0x2040003
|
*
|
* @param context
|
* @return
|
*/
|
public static Context getFixedContext(Context context) {
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
|
return context.createConfigurationContext(new Configuration());
|
} else {
|
return context;
|
}
|
}
|
|
|
}
|