實際上我們通常是使用WebView控制項對本地html進行讀取,這樣就可以體會類似web app和安卓原生混合開發的樂趣了。在讀取本地html並展示在前臺的時候,並不需要在Androidmenifast.xml文件當中設置相應的網路許可權,也不需要設置https協議,因為安卓手機的本地伺服器應該都是基於 ...
實際上我們通常是使用WebView控制項對本地html進行讀取,這樣就可以體會類似web app和安卓原生混合開發的樂趣了。在讀取本地html並展示在前臺的時候,並不需要在Androidmenifast.xml文件當中設置相應的網路許可權,也不需要設置https協議,因為安卓手機的本地伺服器應該都是基於http協議的,一個手機又不可能去申請一個ssl安全證書。我們只需要把WebView控制項訪問基於http協議的網路的代碼稍作修改即可,在寫代碼之前,我們還需要創建一個assets文件夾,將我們所對應的html文件放置在這個文件夾里,具體創建這個文件夾的過程可以參見這篇博客:https://www.cnblogs.com/geeksongs/p/10673133.html
我們的代碼如下:
MainActivity.java
import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.net.http.SslError; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.webkit.SslErrorHandler; import android.webkit.WebSettings; import android.webkit.WebView; import android.webkit.WebViewClient; public class MainActivity extends AppCompatActivity { private WebView webView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); init(); } private void init(){ webView = (WebView) findViewById(R.id.webView); //需要載入的網頁的url webView.loadUrl("file:///android_asset/index2.html");//這裡寫的是assets文件夾下html文件的名稱,需要帶上後面的尾碼名,前面的路徑是安卓系統自己規定的android_asset就是表示的在assets文件夾下的意思。 webView.getSettings().setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_COLUMN);//自適應屏幕 webView.getSettings().setLoadWithOverviewMode(true);//自適應屏幕 webView.getSettings().setSupportZoom(true); webView.getSettings().setUseWideViewPort(true);//擴大比例的縮放 webView.getSettings().setBuiltInZoomControls(true);//設置是否出現縮放工具 WebSettings settings = webView.getSettings(); // 如果訪問的頁面中要與Javascript交互,則webview必須設置支持Javascript settings.setJavaScriptEnabled(true); webView.setWebViewClient(new WebViewClient(){ public boolean shouldOverrideUrlLoading(WebView view, String url){ view.loadUrl(url); return true; } });} }
我覺得上面註釋也寫得比較詳細了,可以根據自己的需求根據註釋作一些必要的更改。