WebView的基本屬性配置?http://blog.csdn.net/u014772832/article/details/49341523
WebView各種屬性詳解?http://blog.csdn.net/cgq1030699125/article/details/52637774?
// 在自己的app中加載網(wǎng)址
finalWebSettings settings =mWebView.getSettings();
/* 設置支持Js,必須設置的,不然網(wǎng)頁基本上不能看 */
mWebView.getSettings().setJavaScriptEnabled(true);
/*?設置緩存模式,我這里使用的默認,不做多講解?*/
mWebView.getSettings().setCacheMode(WebSettings.LOAD_DEFAULT);
/*?設置為true表示支持使用js打開新的窗口?*/
mWebView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
/*?大部分網(wǎng)頁需要自己保存一些數(shù)據(jù),這個時候就的設置下面這個屬性?*/
mWebView.getSettings().setDomStorageEnabled(true);
/*?設置為使用webview推薦的窗口?*/
mWebView.getSettings().setUseWideViewPort(true);
/*?設置網(wǎng)頁自適應屏幕大小?---這個屬性應該是跟上面一個屬性一起用?*/
mWebView.getSettings().setLoadWithOverviewMode(true);
/*?HTML5的地理位置服務,設置為true,啟用地理定位?*/
mWebView.getSettings().setGeolocationEnabled(true);
/*?設置是否允許webview使用縮放的功能,我這里設為false,不允許?*/
mWebView.getSettings().setBuiltInZoomControls(false);
/*?提高網(wǎng)頁渲染的優(yōu)先級?*/
mWebView.getSettings().setRenderPriority(RenderPriority.HIGH);
/*?設置顯示水平滾動條,就是網(wǎng)頁右邊的滾動條.我這里設置的不顯示?*/
mWebView.setHorizontalScrollBarEnabled(false);
/*?指定垂直滾動條是否有疊加樣式?*/
mWebView.setVerticalScrollbarOverlay(true);
/*?設置滾動條的樣式?*/
mWebView.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);
/*?這個不用說了,重寫WebChromeClient監(jiān)聽網(wǎng)頁加載的進度,從而實現(xiàn)進度條?*/
mWebView.setWebChromeClient(newWebChromeClient());
/*?同上,重寫WebViewClient可以監(jiān)聽網(wǎng)頁的跳轉和資源加載等等...?*/
mWebView.setWebViewClient(newWebViewClient());
補充 ?:1. shouldOverrideUrlLoading表示當前webView中的一個新url需要加載時院仿,給當前應用程序一個處理機會秸抚,如果沒有重寫此函數(shù)速和,webView請求ActivityManage選擇合適的方式處理請求,就像彈出uc和互聯(lián)網(wǎng)讓用戶選擇瀏覽器一樣剥汤。重寫后return true表示讓當前程序處理颠放,return false表示讓當前webView處理
2. 在 onPageFinished方法里添加一個加載轉圈的方法,可以起到一個過度白屏的問題吭敢,當webview 加載H5頁面完畢碰凶,轉圈自動消失
3.下面代碼主要是解釋如何引用封裝好的轉圈顯示的代碼
webFrameLayout= (FrameLayout) findViewById(R.id.webFrameLayout);
mLoadManager=newLoadManager(webFrameLayout);
mWebView=newWebView(getApplicationContext());
webFrameLayout.addView(mWebView,0);
成功時在onPageFinished方法里添加 mLoadManager.showPageSafe(LoadManager.STATE_SUCCESS);
其它狀態(tài)一一對應就行? :mLoadManager.showPageSafe(LoadManager.STATE_EMPTY);
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? mLoadManager.showPageSafe(LoadManager.STATE_ERROR);
要想進一步理解得去看LoadManager ?類的 代碼
下面是webview 與js 交互的相關鏈接?
http://www.jb51.net/article/84957.htm
http://www.cnblogs.com/fx2008/p/5809620.html ? ? ? ? ? ? webview與js交互的demo? 成功驗證過得
http://blog.csdn.net/goo_x/article/details/50823523 ? ? ? ? ?Android WebView - 全面總結(概述、捕獲url省有、js交互痒留、小技巧、內存泄漏蠢沿、緩存機制)
https://www.zhihu.com/question/31316646 ? ? ? ? ? ? ? ? ? ? ? Android WebView 在開發(fā)過程中有哪些坑伸头?
https://tech.meituan.com/WebViewPerf.html ? ? ? ? ? ? ? ? ? ?WebView性能、體驗分析與優(yōu)化