WebView加载本地Html文件并实现点击效果

Webview是用来与前端交互的纽,能够加载本地Html文件,和网页并实现交互的功能。javascript

WebView经过WebSetting可使用Android原生的JavascriptInterface来进行js和java的通讯。html

加载本地文件:webView.loadUrl("file:///android_asset/xxx.html");前端

加载网页:webView.loadUrl("http://baidu.com");java

案例:(WebView加载本地Html并实现与JS通讯) 效果图:android

       

 

/***
 * 
 * WebView加载本地文件和实现JS点击效果
 * 
 * @author zq
 *
 */
public class MainActivity extends Activity {

	private WebView webView;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		  setContentView(R.layout.activity_main);
          initView();
	
	}
	private void initView() {
		// TODO Auto-generated method stub
		  // 获取webview控件
			webView = (WebView) findViewById(R.id.activity_webview);
			// 获取WebView的设置
			WebSettings webSettings = webView.getSettings();
			// 将JavaScript设置为可用,这一句话是必须的,否则所作一切都是徒劳的
			webSettings.setJavaScriptEnabled(true);
			// 给webview添加JavaScript接口
			webView.addJavascriptInterface(new JsInterface(), "control");
			// 经过webview加载html页面
			webView.loadUrl("file:///android_asset/l.html");
	}

	public class JsInterface {
		@JavascriptInterface
		public void showToast(String toast) {
			Toast.makeText(MainActivity.this, toast, Toast.LENGTH_SHORT).show();
		}

		public void log(final String msg) {
			webView.post(new Runnable() {

				@Override
				public void run() {
					webView.loadUrl("javascript log(" + "'" + msg + "'" + ")");

				}
			});
		}
	}

}

JS文件git

function showToast(toast) {       
	  javascript:control.showToast(toast);
     }
  function log(msg) {
	  consolse.log(msg);
    }

AndroidManifest.xml 中加权限github

<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

代码未彻底给出,要源码直接下载便可web

 

源码点击下载:https://github.com/DickyQie/android-webviewide

相关文章
相关标签/搜索