android Webview根據網址讀取頁面和直接讀取html的方法
阿新 • • 發佈:2019-02-01
1、根據網址直接顯示頁面的方法,如下程式碼是xml資料
<WebView android:id="@+id/webView" android:layout_width="fill_parent" android:layout_height="fill_parent"/>
2、Activity程式碼如下:
mWebView=findViewById(R.id.webView);
String url = “http://www.baidu.com”; mWebView.loadUrl(url);
3、但是這種方法預設呼叫的是外部的瀏覽器,不能直接開啟,直接開啟方式如下
String url = "http://www.baidu.com"; mWebView.getSettings().setJavaScriptEnabled(true); //mWebView,使網頁用WebView開啟 mWebView.setWebViewClient(new WebViewClient(){ @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { //返回值是true的時候控制去WebView開啟,為false呼叫系統瀏覽器或第三方瀏覽器 view.loadUrl(url); return true; } }); mWebView.loadUrl(url);
4、如果直接讀取html頁面內容,如在後臺編輯的html頁面時可用如下方法
private WebView mWebView; private String dataStr="<html><body><style>img{ width:100% !important;}</style>"+ "<img src=https://ss0.bdstatic.com/-0U0bnSm1A5BphGlnYG/tam-ogel/dd9d1d686cdc814db9653b254e00402e_259_194.jpg alt= />"+ "<p style=text-align:right;>品類定位的思考</p><h3><strong><span style=color:#00D5FF;>品類定</span></strong>" + "<h3><a href='JavaScript:android.returnAndroid(要返回給APP的資料)'>點選我跳回APP</a>"+"</body></html>"; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.base_webview); initView(); initData(); } /*初始化頁面內容*/ private void initView(){ setTitle("常見問題",false,null); registerBack(); mWebView=findViewById(R.id.webView); } private void initData(){ //設定WebView的樣式,編碼格式. mWebView.loadDataWithBaseURL("",dataStr, "text/html", "UTF-8", "about:blank"); //硬體加速 mWebView.setLayerType(View.LAYER_TYPE_SOFTWARE, null); }
5、webView屬性我好多都沒用上,在這裡也寫一下吧
public void initWebView(String data){
WebSettings settings = mWebView.getSettings();
//settings.setUseWideViewPort(true);//調整到適合webview的大小,不過儘量不要用,有些手機有問題
settings.setLoadWithOverviewMode(true);//設定WebView是否使用預覽模式載入介面。
mWebView.setVerticalScrollBarEnabled(false);//不能垂直滑動
mWebView.setHorizontalScrollBarEnabled(false);//不能水平滑動
settings.setTextSize(WebSettings.TextSize.LARGEST);//通過設定WebSettings,改變HTML中文字的大小
settings.setJavaScriptCanOpenWindowsAutomatically(true);//支援通過JS開啟新視窗
//設定WebView屬性,能夠執行Javascript指令碼
mWebView.getSettings().setJavaScriptEnabled(true);//設定js可用
mWebView.setWebViewClient(new WebViewClient());
mWebView.addJavascriptInterface(new AndroidJavaScript(getApplication()), "android");//設定js介面
settings.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_COLUMN);//支援內容重新佈局
/****** 22222222 ***********************************************************************/
// data = "</Div><head><style>img{ width:100% !important;}</style></head>"+data;//給圖片設定一個樣式,寬滿屏
/****** 2222222222 ***********************************************************************/
mWebView.loadDataWithBaseURL(null, data, "text/html", "utf-8", null);
}