前言
本篇文章講的是WivView怎樣與JavaScrpit進行交互
一:java中調(diào)用js函數(shù)
1:添加html中javascript代碼
function javaCallJsFunction(isHide) {
var x = document.getElementById('div');
x.className = "";
}
function js2java() {
JSInterface.javaFunction();
}
2:webView配置
// 省略掉findView..webview
jsInterface = new JsInterface(mWevView);
mWevView.getSettings().setJavaScriptEnabled(true);
//添加Javascript界面
mWevView.addJavascriptInterface(jsInterface, "JSInterface");
mWevView.setWebViewClient(new webviewClient());
mWevView.loadUrl("file:///android_asset/index.html");
3:添加Javascript界面
public class JsInterface {
private WebView mWebView;
public JsInterface(WebView webView) {
this.mWebView = webView;
}
/**
* java調(diào)用js方法
*/
@JavascriptInterface
public void javaFunction() {
new Handler(Looper.getMainLooper()).post(new Runnable() {
@Override
public void run() {
//更新主循環(huán)中的UI赢乓,否則它將崩潰
Toast.makeText(mWebView.getContext(), "javaFunction已被調(diào)用", Toast.LENGTH_SHORT).show();
}
});
}
/**
* js調(diào)用java方法
*/
public void javaCallJsFunction(int code) {
mWebView.loadUrl(String.format("javascript:javaCallJsFunction(" + code + ")"));
}
}
4:利用webviewClient的onPageFinished()方法調(diào)用JS中函數(shù)
class webviewClient extends WebViewClient {
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
jsInterface.javaCallJsFunction(1);
}
});
}
}
二:JS 調(diào)用 Java 中方法
1:HTML中添加調(diào)用java的方法梭姓,js方法在上面有寫出
<input type="button" onClick="js2java()" style="height:50px;width:200px" value="JS調(diào)用java無參函數(shù)">
Demo地址
IT人生的Github地址:My-Andoird-js
最后
不懂得地方歡迎私信我洋满,我會在第一時間給予回復(fù)科贬,如閱讀中發(fā)現(xiàn)寫錯的地方沥阱,歡迎糾正。