1. 程式人生 > >webview載入網頁和assets的html檔案

webview載入網頁和assets的html檔案

效果


程式碼

package com.fe.statuslayout;
import android.graphics.Color;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.View;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient; import android.widget.Button; /** * Created by Administrator on 2017/3/6 0006. * webview載入網頁和assetshtml檔案 */ public class MainTwo extends AppCompatActivity implements View.OnClickListener { private Toolbar tb_bar; private Button get; private WebView webview
; private String path = "http://www.baidu.com"; private Button html; private Button assets_html; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main_two); initView(); initToolBar(); } private void
initToolBar() { //Toast.makeText(this, "1", Toast.LENGTH_SHORT).show(); //Toast.makeText(this, "2", Toast.LENGTH_SHORT).show(); tb_bar.setTitle("Status"); tb_bar.setTitleTextColor(Color.WHITE); tb_bar.inflateMenu(R.menu.base_toolbar_menu); } private void initView() { tb_bar = (Toolbar) findViewById(R.id.tb_bar); get = (Button) findViewById(R.id.get); get.setOnClickListener(this); webview = (WebView) findViewById(R.id.webview); webview.setOnClickListener(this); html = (Button) findViewById(R.id.html); html.setOnClickListener(this); assets_html = (Button) findViewById(R.id.assets_html); assets_html.setOnClickListener(this); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.get: //載入網頁 webview.loadUrl(path); //webview預設使用第三方瀏覽器開啟網頁。 //設定webview自己展示網頁 webview.setWebViewClient(new WebViewClient() { @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); return true; } }); break; case R.id.html: //載入html StringBuilder sb = new StringBuilder(); //拼接一段HTML程式碼 sb.append("<html>"); sb.append("<head>"); sb.append("<title>歡迎你</title>"); sb.append("</head>"); sb.append("<body>"); sb.append("<h2>歡迎你訪問<a href=\"http://www.crazyit.org\">" + "瘋狂Java聯盟</a></h2>"); sb.append("</body>"); sb.append("</html>"); //使用簡單的loadData方法會導致亂碼,可能是Android APIBug //webview.loadData(sb.toString(), "text/html", "utf-8"); webview.loadDataWithBaseURL(null, sb.toString(), "text/html", "utf-8", null); break; case R.id.assets_html: //載入assets目錄下的html //加上下面這段程式碼可以使網頁中的連結不以瀏覽器的方式開啟 webview.setWebViewClient(new WebViewClient()); webview.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);//滾動條風格,為0指滾動條不佔用空間,直接覆蓋在網頁上 //得到webview設定 WebSettings webSettings = webview.getSettings(); //允許使用javascript webSettings.setJavaScriptEnabled(true); //設定字元編碼 webSettings.setDefaultTextEncodingName("UTF-8"); //支援縮放 webSettings.setSupportZoom(true); webSettings.setBuiltInZoomControls(true); webSettings.setUseWideViewPort(true); webSettings.setLoadWithOverviewMode(true); //WebAppInterfacejavascript繫結 //webview.addJavascriptInterface(new PaymentJavaScriptInterface(),"Android"); //android assets目錄下html檔案路徑url file:///android_asset/profile.html String url = "file:///android_asset/" + "css_three.html"; webview.loadUrl(url); break; } } /*private class PaymentJavaScriptInterface { }*/ }

assets目錄


佈局

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
    <android.support.v7.widget.Toolbar
android:id="@+id/tb_bar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/Theme.ToolBar.Base"/>
    <Button
android:id="@+id/get"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="載入網頁"/>
    <Button
android:id="@+id/html"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="載入html"/>
    <Button
android:id="@+id/assets_html"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="載入assets目錄下的html"/>
    <WebViewandroid:id="@+id/webview"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</LinearLayout>

AndroidManifest.xml

<!--網路許可權-->
<uses-permission android:name="android.permission.INTERNET"/>

。。。