android与html之间交互,android调用html方法 以及 html调用android方法
html文件 (js)将html文件放到main下 assts资源文件中<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"><script type="text/javascript">function androidCallJs(arg){doc
·
html文件 (js)
将html文件放到main下 assts资源文件中
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<script type="text/javascript">
function androidCallJs(arg){
document.getElementById("content").innerHTML = ("欢迎:"+arg );
alert("javascript弹窗");
}
</script>
</head>
<body>
<div align="left" id="content">冲冲冲</div>
<div align="right">冲冲冲</div>
<input type="button" value="点击调用android事件吐司" onclick="window.Android.showToast()"/>
<input type="button" value="点击调用android事件吐司再调用js中的androidCallJs方法" onclick="window.Java.showToast()"/>
</body>
</html>
android 代码
public class MainActivity extends Activity {
WebView webView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initWebView();
//设置支持js调用java
webView.addJavascriptInterface(new AndroidAndJSInterface(), "Android");
webView.addJavascriptInterface(new AndroidAndJSInterface2(), "Java");
}
private void initWebView() {
webView = new WebView(this);
//设置WebChromeClient实现各种内容渲染-js的弹框需要
webView.setWebChromeClient(new WebChromeClient());
webSettings.setAllowFileAccess(true);
webSettings.setAllowFileAccessFromFileURLs(true);
webSettings.setAllowUniversalAccessFromFileURLs(true);
WebSettings webSettings = webView.getSettings();
//设置支持javaScript脚步语言
webSettings.setJavaScriptEnabled(true);
//支持双击-前提是页面要支持才显示
webSettings.setUseWideViewPort(true);
//支持缩放按钮-前提是页面要支持才显示
webSettings.setBuiltInZoomControls(true);
//设置客户端-不跳转到默认浏览器中
webView.setWebViewClient(new WebViewClient());
//加载网络资源/本地资源
webView.loadUrl("file:///android_asset/a.html");
//显示页面
setContentView(webView);
}
private void login() {
//调用js的androidCallJs(String)的方法
webView.loadUrl("javascript:androidCallJs('android调用')");
}
class AndroidAndJSInterface {
@JavascriptInterface
public void showToast() {
runOnUiThread(new Runnable() {
@Override
public void run() {
//被js调用 吐司
Toast.makeText(MainActivity.this, "Android:showToast()被js调用了", Toast.LENGTH_SHORT).show();
}
});
}
}
class AndroidAndJSInterface2 {
@JavascriptInterface
public void showToast() {
runOnUiThread(new Runnable() {
@Override
public void run() {
//被js调用 在调用js方法
login();
// Toast.makeText(MainActivity.this, "JS按钮调用android:showToast()->android 调用jsjavaCalljs方法", Toast.LENGTH_SHORT).show();
}
});
}
}
}
更多推荐
已为社区贡献1条内容
所有评论(0)