Android提供了WebView控件专门来加载html代码实现的界面。这个控件在某些方面用起来比较方便。比如说商家活动主题界面,这种界面会随活动的变化而不断的变化,若是用Android源生xml布局,当活动界面改变时,用户必须更新APP才能更新对应活动界面,而WebView加载的html界面则不需要用户更新APP就可以达到更换界面的目的。只需要改变HTML内部实现就可以了。此处只是写了个demo提示有这种方法实现。需要三步:
一:加载html界面。用WebView实列调用loadUrl()方法,方法参数为web地址,这里采用的tomcat服务器中的一个地址。
<span style="white-space:pre"> </span>/*第一步加HTML文件加载到WebView */
String url = "http://192.168.1.112:8080/HQ/hunqing.html";
mWebView = (WebView) findViewById(R.id.webview);
mWebView.loadUrl(url);
二、定义交互接口名和交互方法。这里的交互接口名和交互方法都将在html对应的行为方法中引用到。格式是window.交互接口名.交互方法名。具体应用看下面的html文件。
<span style="white-space:pre"> </span>/*第二步构造交互接口名JavaScript_interface和交互方法show()等
* 交互接口名和方法名都将在html中JavaScript中用到
* 列如window.JavaScript_interface.show();*/
class WebViewJavaScript{
public static final String JAVASCRIPT_NAME = "JavaScript_interface"; //交互接口名
public void show(){ //交互方法
Mylog.v("=========================");
Toast.makeText(WebViewActivity.this, "我是JavaScript接口方法", Toast.LENGTH_SHORT).show();
}
public void startActivity(){
Intent intent = new Intent(WebViewActivity.this,NotificationActivity.class);
WebViewActivity.this.startActivity(intent);
}
public void showImg(){
Toast.makeText(WebViewActivity.this, "我是JavaScript接口方法", Toast.LENGTH_SHORT).show();
}
}
三、加载的行为(javascript语言)
<span style="white-space:pre"> </span>/*加载行为*/
WebSettings settings = mWebView.getSettings();
settings.setJavaScriptEnabled(true);
mWebView.addJavascriptInterface(new WebViewJavaScript(), WebViewJavaScript.JAVASCRIPT_NAME);
这里的WebView就设置完了。
下面看html里面需要写什么,在html中的<script>标签中就引用了对应的交互接口名和方法。
<span style="white-space:pre"> </span><script>
function labaChlick(){
window.JavaScript_interface.show(); <!-- 引用交互接口方法-->
}
function p1Click(){
//alert("你好,我是弹出对话框");
window.JavaScript_interface.startActivity(); //这行代码关联Android源生代码
}
function imgClick