安卓開發筆記(二十二):讀取本地(內置)html文件並實現和Javascript交互


實際上我們通常是使用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;
            }
        });}

}

我覺得上面注釋也寫得比較詳細了,可以根據自己的需求根據注釋作一些必要的更改。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM