package com.yeshi.base.utils.x5; import android.annotation.SuppressLint; import android.content.Context; import android.graphics.Canvas; import android.util.AttributeSet; import android.view.View; import android.widget.TextView; import com.tencent.smtt.sdk.CookieSyncManager; import com.tencent.smtt.sdk.WebSettings; import com.tencent.smtt.sdk.WebSettings.LayoutAlgorithm; import com.tencent.smtt.sdk.WebView; import com.tencent.smtt.sdk.WebViewClient; public class X5WebView extends WebView { TextView title; private WebViewClient client = new WebViewClient() { /** * 防止加载网页时调起系统浏览器 */ public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); return true; } }; @SuppressLint("SetJavaScriptEnabled") public X5WebView(Context arg0, AttributeSet arg1) { super(arg0, arg1); this.setWebViewClient(client); // this.setWebChromeClient(chromeClient); // WebStorage webStorage = WebStorage.getInstance(); initWebViewSettings(); this.getView().setClickable(true); } 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.setAppCacheEnabled(true); // webSetting.setDatabaseEnabled(true); webSetting.setDomStorageEnabled(true); webSetting.setGeolocationEnabled(true); webSetting.setAppCacheMaxSize(Long.MAX_VALUE); // webSetting.setPageCacheCapacity(IX5WebSettings.DEFAULT_CACHE_CAPACITY); webSetting.setPluginState(WebSettings.PluginState.ON_DEMAND); // webSetting.setRenderPriority(WebSettings.RenderPriority.HIGH); webSetting.setCacheMode(WebSettings.LOAD_NO_CACHE); // this.getSettingsExtension().setPageCacheCapacity(IX5WebSettings.DEFAULT_CACHE_CAPACITY);//extension // settings 的设计 webSetting.setUserAgent(webSetting.getUserAgentString().replace("TBS","MG").replace("MQQBrowser","MUGUABrowser")); webSetting.setTextZoom(100); CookieSyncManager.createInstance(getContext()); CookieSyncManager.getInstance().sync(); } @Override protected boolean drawChild(Canvas canvas, View child, long drawingTime) { boolean ret = super.drawChild(canvas, child, drawingTime); canvas.save(); // Paint paint = new Paint(); // paint.setColor(0x7fff0000); // paint.setTextSize(24.f); // paint.setAntiAlias(true); // if (getX5WebViewExtension() != null) { // canvas.drawText(this.getContext().getPackageName() + "-pid:" // + android.os.Process.myPid(), 10, 50, paint); // canvas.drawText( // "X5 Core:" + QbSdk.getTbsVersion(this.getContext()), 10, // 100, paint); // } else { // canvas.drawText(this.getContext().getPackageName() + "-pid:" // + android.os.Process.myPid(), 10, 50, paint); // canvas.drawText("Sys Core", 10, 100, paint); // } // canvas.drawText(Build.MANUFACTURER, 10, 150, paint); // canvas.drawText(Build.MODEL, 10, 200, paint); // canvas.restore(); return ret; } public X5WebView(Context arg0) { super(arg0); setBackgroundColor(85621); } }