腾讯浏览器(X5WebView的使用)
生活随笔
收集整理的這篇文章主要介紹了
腾讯浏览器(X5WebView的使用)
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
關(guān)注公眾號(hào),獲取更多內(nèi)容
我們?cè)谑褂肁ndroid原生WebView的時(shí)候總會(huì)遇到各種各樣的兼容性問(wèn)題,比如----遇到?<iframe>標(biāo)簽引入的視頻鏈接的時(shí)候,發(fā)現(xiàn)無(wú)法全屏觀看,這個(gè)時(shí)候就需要使用X5WebView了,還可以進(jìn)行小窗播放。
本文Demo地址:http://download.csdn.net/download/eueheuen/10265354
GitHub地址:https://github.com/EUEHBin/Demo(歡迎Star)
官方地址:http://x5.tencent.com/
下載官方SDK,按照官方文檔引入,注意:x5暫時(shí)不提供64位so文件,為了保證64位手機(jī)能正常加載x5內(nèi)核,請(qǐng)參照如下鏈接修改相關(guān)配置https://x5.tencent.com/tbs/technical.html#/detail/sdk/1/34cf1488-7dc2-41ca-a77f-0014112bcab7
在MyApp中初始化X5:(耗時(shí),放在子線程)
?
public class MyApp extends Application {@Overridepublic void onCreate() {super.onCreate();//初始化 x5內(nèi)核new Thread(new Runnable() {@Overridepublic void run() {QbSdk.PreInitCallback cb = new QbSdk.PreInitCallback() {@Overridepublic void onCoreInitFinished() {}@Overridepublic void onViewInitFinished(boolean b) {}};QbSdk.initX5Environment(getApplicationContext(),cb);}}).start();} }有關(guān)X5的配置:
?
//WebViewprivate void MyWeb(String url) {webView = (ProgressWebView) findViewById(R.id.wb);webView.setDrawingCacheEnabled(true);webChromeClient = new WebChromeClient();webView.setWebChromeClient(webChromeClient);webSettings = webView.getSettings();// 修改ua使得web端正確判斷(加標(biāo)識(shí)+++++++++++++++++++++++++++++++++++++++++++++++++++++) // String ua = webSettings.getUserAgentString(); // webSettings.setUserAgentString(ua + "這里是增加的標(biāo)識(shí)");// 網(wǎng)頁(yè)內(nèi)容的寬度是否可大于WebView控件的寬度webSettings.setLoadWithOverviewMode(false);// 保存表單數(shù)據(jù)webSettings.setSaveFormData(true);webSettings.setCacheMode(WebSettings.LOAD_NO_CACHE); //關(guān)閉webview中緩存// 是否應(yīng)該支持使用其屏幕縮放控件和手勢(shì)縮放webSettings.setSupportZoom(true);webSettings.setBuiltInZoomControls(true);//隱藏原生的縮放控件webSettings.setDisplayZoomControls(false);webView.requestFocus(); //此句可使html表單可以接收鍵盤輸入webView.setFocusable(true);webSettings.setUseWideViewPort(true);webSettings.setSavePassword(true);webSettings.setGeolocationEnabled(true);webSettings.setDomStorageEnabled(true);webSettings.setJavaScriptEnabled(true);// 啟動(dòng)應(yīng)用緩存webSettings.setAppCacheEnabled(false);// 設(shè)置緩存模式webSettings.setCacheMode(WebSettings.LOAD_NO_CACHE);// 設(shè)置此屬性,可任意比例縮放。webSettings.setUseWideViewPort(true);webSettings.setSupportZoom(true); //支持縮放,默認(rèn)為true。是下面那個(gè)的前提。webSettings.setBuiltInZoomControls(true); //設(shè)置內(nèi)置的縮放控件。若為false,則該WebView不可縮放// 頁(yè)面加載好以后,再放開(kāi)圖片//mSettings.setBlockNetworkImage(false);// 使用localStorage則必須打開(kāi)webSettings.setDomStorageEnabled(true);// 排版適應(yīng)屏幕webSettings.setLayoutAlgorithm(com.tencent.smtt.sdk.WebSettings.LayoutAlgorithm.NARROW_COLUMNS);// WebView是否支持多個(gè)窗口。webSettings.setSupportMultipleWindows(true);webSettings.setUseWideViewPort(true); // 關(guān)鍵點(diǎn)webSettings.setAllowFileAccess(true); // 允許訪問(wèn)文件//將圖片調(diào)整到適合webview的大小webSettings.setUseWideViewPort(true);// webview從5.0開(kāi)始默認(rèn)不允許混合模式,https中不能加載http資源,需要設(shè)置開(kāi)啟。 // if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { // webSettings.setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW); // }// 縮放至屏幕的大小webSettings.setLoadWithOverviewMode(true);//其他細(xì)節(jié)操作webSettings.setAllowFileAccess(true); //設(shè)置可以訪問(wèn)文件webSettings.setJavaScriptCanOpenWindowsAutomatically(true); //支持通過(guò)JS打開(kāi)新窗口webSettings.setLoadsImagesAutomatically(true); //支持自動(dòng)加載圖片webSettings.setDefaultTextEncodingName("utf-8");//設(shè)置編碼格式webSettings.setDomStorageEnabled(true);//JS在HTML里面設(shè)置了本地存儲(chǔ)localStorage,java中使用localStorage則必須打開(kāi)webView.getSettings().setDomStorageEnabled(true);webView.getSettings().setUseWideViewPort(true); //自適應(yīng)屏幕//以下接口禁止(直接或反射)調(diào)用,避免視頻畫(huà)面無(wú)法顯示://webView.setLayerType();webView.setDrawingCacheEnabled(true);//去除QQ瀏覽器推廣廣告getWindow().getDecorView().addOnLayoutChangeListener(new View.OnLayoutChangeListener() {@Overridepublic void onLayoutChange(View v, int left, int top, int right, int bottom, int oldLeft, int oldTop, int oldRight, int oldBottom) {ArrayList<View> outView = new ArrayList<View>();getWindow().getDecorView().findViewsWithText(outView,"QQ瀏覽器",View.FIND_VIEWS_WITH_TEXT);if(outView.size()>0){outView.get(0).setVisibility(View.GONE);}}});webView.setWebViewClient(new WebViewClient() {@Overridepublic boolean shouldOverrideUrlLoading(WebView webView, String s) {webView.loadUrl(s);return true;}@Overridepublic void onPageStarted(WebView webView, String s, Bitmap bitmap) {super.onPageStarted(webView, s, bitmap);}@Overridepublic void onPageFinished(WebView webView, String s) {super.onPageFinished(webView, s);}@Overridepublic void onReceivedError(WebView webView, int i, String s, String s1) {super.onReceivedError(webView, i, s, s1);}});webView.loadUrl(url);}?
總結(jié)
以上是生活随笔為你收集整理的腾讯浏览器(X5WebView的使用)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 物联公司网页设计制作 简单静态HTML网
- 下一篇: android x5 浏览器教程,064