腾讯浏览器(X5WebView的使用)
生活随笔
收集整理的這篇文章主要介紹了
腾讯浏览器(X5WebView的使用)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
關注公眾號,獲取更多內容
我們在使用Android原生WebView的時候總會遇到各種各樣的兼容性問題,比如----遇到?<iframe>標簽引入的視頻鏈接的時候,發現無法全屏觀看,這個時候就需要使用X5WebView了,還可以進行小窗播放。
本文Demo地址:http://download.csdn.net/download/eueheuen/10265354
GitHub地址:https://github.com/EUEHBin/Demo(歡迎Star)
官方地址:http://x5.tencent.com/
下載官方SDK,按照官方文檔引入,注意:x5暫時不提供64位so文件,為了保證64位手機能正常加載x5內核,請參照如下鏈接修改相關配置https://x5.tencent.com/tbs/technical.html#/detail/sdk/1/34cf1488-7dc2-41ca-a77f-0014112bcab7
在MyApp中初始化X5:(耗時,放在子線程)
?
public class MyApp extends Application {@Overridepublic void onCreate() {super.onCreate();//初始化 x5內核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();} }有關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端正確判斷(加標識+++++++++++++++++++++++++++++++++++++++++++++++++++++) // String ua = webSettings.getUserAgentString(); // webSettings.setUserAgentString(ua + "這里是增加的標識");// 網頁內容的寬度是否可大于WebView控件的寬度webSettings.setLoadWithOverviewMode(false);// 保存表單數據webSettings.setSaveFormData(true);webSettings.setCacheMode(WebSettings.LOAD_NO_CACHE); //關閉webview中緩存// 是否應該支持使用其屏幕縮放控件和手勢縮放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);// 啟動應用緩存webSettings.setAppCacheEnabled(false);// 設置緩存模式webSettings.setCacheMode(WebSettings.LOAD_NO_CACHE);// 設置此屬性,可任意比例縮放。webSettings.setUseWideViewPort(true);webSettings.setSupportZoom(true); //支持縮放,默認為true。是下面那個的前提。webSettings.setBuiltInZoomControls(true); //設置內置的縮放控件。若為false,則該WebView不可縮放// 頁面加載好以后,再放開圖片//mSettings.setBlockNetworkImage(false);// 使用localStorage則必須打開webSettings.setDomStorageEnabled(true);// 排版適應屏幕webSettings.setLayoutAlgorithm(com.tencent.smtt.sdk.WebSettings.LayoutAlgorithm.NARROW_COLUMNS);// WebView是否支持多個窗口。webSettings.setSupportMultipleWindows(true);webSettings.setUseWideViewPort(true); // 關鍵點webSettings.setAllowFileAccess(true); // 允許訪問文件//將圖片調整到適合webview的大小webSettings.setUseWideViewPort(true);// webview從5.0開始默認不允許混合模式,https中不能加載http資源,需要設置開啟。 // if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { // webSettings.setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW); // }// 縮放至屏幕的大小webSettings.setLoadWithOverviewMode(true);//其他細節操作webSettings.setAllowFileAccess(true); //設置可以訪問文件webSettings.setJavaScriptCanOpenWindowsAutomatically(true); //支持通過JS打開新窗口webSettings.setLoadsImagesAutomatically(true); //支持自動加載圖片webSettings.setDefaultTextEncodingName("utf-8");//設置編碼格式webSettings.setDomStorageEnabled(true);//JS在HTML里面設置了本地存儲localStorage,java中使用localStorage則必須打開webView.getSettings().setDomStorageEnabled(true);webView.getSettings().setUseWideViewPort(true); //自適應屏幕//以下接口禁止(直接或反射)調用,避免視頻畫面無法顯示://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);}?
總結
以上是生活随笔為你收集整理的腾讯浏览器(X5WebView的使用)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 物联公司网页设计制作 简单静态HTML网
- 下一篇: win7自带桌面便签