Android加载本地网页

1.Android项目如何创建assets文件夹

直接上图

点击finish即可


然后在该文件夹下面可以创建常规的js、css、img目录。


2.加载本地网页代码


在assets文件夹根目录下面有index.html测试文件,那么url应该这样写:

[java]  view plain  copy
  1. String url = "file:///android_asset/index.html";  

调用代码:
[java]  view plain  copy
  1. package com.xzy.loadlocalhtmldemo;  
  2.   
  3. import android.app.Activity;  
  4. import android.os.Bundle;  
  5. import android.view.View;  
  6.   
  7. /** 
  8.  * 从本地加载网页 
  9.  */  
  10. public class MainActivity extends Activity {  
  11.   
  12.     @Override  
  13.     protected void onCreate(Bundle savedInstanceState) {  
  14.         super.onCreate(savedInstanceState);  
  15.         setContentView(R.layout.activity_main);  
  16.         findViewById(R.id.btn_load_webview).setOnClickListener(new View.OnClickListener() {  
  17.             @Override  
  18.             public void onClick(View v) {  
  19.                 String url = "file:///android_asset/index.html";  
  20.                 WebViewActivity.startActivity(MainActivity.this"title", url);  
  21.             }  
  22.         });  
  23.     }  
  24. }  

其中webViewActivity可以作为一个通用加载类来使用,现在贴出代码,代码非常简单,我们可以根据实际需求扩展个通用类。
[java]  view plain  copy
  1. package com.xzy.loadlocalhtmldemo;  
  2.   
  3. import android.annotation.SuppressLint;  
  4. import android.app.Activity;  
  5. import android.content.Context;  
  6. import android.content.Intent;  
  7. import android.os.Bundle;  
  8. import android.text.TextUtils;  
  9. import android.view.View;  
  10. import android.webkit.WebChromeClient;  
  11. import android.webkit.WebSettings;  
  12. import android.webkit.WebView;  
  13. import android.webkit.WebViewClient;  
  14. import android.widget.ProgressBar;  
  15.   
  16. /** 
  17.  * webView 
  18.  */  
  19. public class WebViewActivity extends Activity {  
  20.   
  21.     public static final String TAG = "WebViewActivity";  
  22.   
  23.     private ProgressBar mProgressBar;  
  24.     private WebView mWebView;  
  25.   
  26.     @Override  
  27.     protected void onCreate(Bundle savedInstanceState) {  
  28.         super.onCreate(savedInstanceState);  
  29.         setContentView(R.layout.activity_webview);  
  30.         initView();  
  31.         initData();  
  32.     }  
  33.   
  34.     /** 
  35.      * 初始化视图资源 
  36.      */  
  37.     private void initView() {  
  38.         mProgressBar = (ProgressBar) findViewById(R.id.web_progressBar);  
  39.         mWebView = (WebView) findViewById(R.id.web_wv);  
  40.     }  
  41.   
  42.   
  43.     /** 
  44.      * 加载初始数据 
  45.      */  
  46.     @SuppressLint("SetJavaScriptEnabled")  
  47.     protected void initData() {  
  48.         mProgressBar.setMax(100);  
  49.         WebSettings settings = mWebView.getSettings();  
  50.         settings.setJavaScriptEnabled(true);  
  51.         settings.setJavaScriptCanOpenWindowsAutomatically(true);  
  52.         settings.setSupportMultipleWindows(true);  
  53.   
  54.         mWebView.setWebViewClient(new WebViewClient());  
  55.         mWebView.setWebChromeClient(new WebChromeClient() {  
  56.   
  57.             @Override  
  58.             public void onProgressChanged(WebView view, int newProgress) {  
  59.                 super.onProgressChanged(view, newProgress);  
  60.                 if (newProgress == 0) {  
  61.                     mProgressBar.setVisibility(View.VISIBLE);  
  62.                 } else if (newProgress == 100) {  
  63.                     mProgressBar.setVisibility(View.GONE);  
  64.                 } else {  
  65.                     mProgressBar.setProgress(newProgress);  
  66.                 }  
  67.             }  
  68.         });  
  69.   
  70.         Bundle bundle = getIntent().getExtras();  
  71.         if (bundle != null) {  
  72.             String title = bundle.getString("title");  
  73.             String url = bundle.getString("url");  
  74.             //设置标题  
  75.             //setTitleText(title);  
  76.             mWebView.loadUrl(url);  
  77.         }  
  78.     }  
  79.   
  80.     /** 
  81.      * @param context 上下文 
  82.      * @param title   activity标题 
  83.      * @param url     本地网页url 
  84.      */  
  85.     public static void startActivity(Context context, String title, String url) {  
  86.         if (TextUtils.isEmpty(url)) {  
  87.             return;  
  88.         }  
  89.         Intent intent = new Intent(context, WebViewActivity.class);  
  90.         intent.putExtra("title", title);  
  91.         intent.putExtra("url", url);  
  92.         context.startActivity(intent);  
  93.     }  
  94.   
  95.     @SuppressLint("SetJavaScriptEnabled")  
  96.     @Override  
  97.     protected void onResume() {  
  98.         super.onResume();  
  99.         mWebView.getSettings().setJavaScriptEnabled(true);  
  100.         mWebView.onResume();  
  101.     }  
  102.   
  103.     @Override  
  104.     protected void onPause() {  
  105.         super.onPause();  
  106.         mWebView.onPause();  
  107.     }  
  108.   
  109.     @Override  
  110.     protected void onStop() {  
  111.         super.onStop();  
  112.         //挂在后台  资源释放  
  113.         mWebView.getSettings().setJavaScriptEnabled(false);  
  114.     }  
  115.   
  116.     @Override  
  117.     protected void onDestroy() {  
  118.         mWebView.setVisibility(View.GONE);  
  119.         mWebView.destroy();  
  120.         super.onDestroy();  
  121.     }  
  122. }  

你可能感兴趣的:(Android基础)