在Android中, WebView 的使用场景有很多, 例如
用户协议页面,很多新闻的正文页(也就是详情页), 广告页:投票页,举办活动页 等
本文介绍WebView的用法
1 通过webview
js 调用java方法
第一步 编写js接口类
<body>
<h2>WebView</h2>
<div><span>请输入要传递的值:</span><input type="text" id="input"></div>
<div class="btn" id="btn"><span>点我</span></div>
<script type="text/javascript">
var btn = document.getElementById("btn");
var input = document.getElementById("input");
btn.addEventListener("click", function(){
var str = input.value;
if(window.shenwudlauncher){
//注意: js调用java类的setValue方法
shenwudlauncher.setValue(str);
}else{
alert("shenwudlauncher对象没找到");
}
});
var remote = function(str) {
input.value = str;
}
</script>
<!--<script type="text/javascript" src="index.js"></script>-->
</body>
第二步 给webView添加js接口 wv.addJavascriptInterface(obj,name);
public class MainActivity extends Activity {
private WebView wv;
private TextView tv;
private EditText et;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.e("MainActivity", "查看 Main Thread ");
setContentView(R.layout.main);
wv = (WebView)findViewById(R.id.wv);
tv = (TextView)findViewById(R.id.tv);
et = (EditText)findViewById(R.id.et);
wv.getSettings().setJavaScriptEnabled(true);
wv.loadUrl("file:///android_asset/index.html");
wv.addJavascriptInterface(new JSInterface(this, tv), "shenwudlauncher");
}
}
第三步 定义一个JsInterface 类
完成以上3步,完善相关xml, 可以实现运行,运行效果如图
2 Java调用 Js方法
使用loadUrl() 调用 js
wv.loadUrl(jsFunction) , jsFunction是要调用的js代码的字符串
运行效果如图