1. 程式人生 > >android Webview根據網址讀取頁面和直接讀取html的方法

android Webview根據網址讀取頁面和直接讀取html的方法

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);
    }