WebView与js的交互
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WebView与js的交互相关的知识,希望对你有一定的参考价值。
android应用中嵌入网页是现在常用的,那么html中如何与android中事件进行绑定呢?
1、提供如下的js代码:
<script type="text/javascript" >
function startActivity() {
android.startActivity();
}
</script>
<script type="text/javascript">
$(‘#entry_button‘).on(‘click‘,function() {
startActivity();
});
</script>
2、提供调用webview的activty:
package com.lia.webview;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.os.Bundle;
import android.webkit.WebResourceResponse;
import android.webkit.WebView;
import android.webkit.WebViewClient;
public class WebViewActivity extends Activity {
private WebView myWebView;
@SuppressLint("SetJavaScriptEnabled")
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.webview);
myWebView = (WebView) findViewById(R.id.myWebView);
//如果访问的页面中有Javascript,则webview必须设置支持Javascript。
myWebView.getSettings().setJavaScriptEnabled(true);
// 与js交互,JavaScriptinterface 是个接口,与js交互时用到的,这个接口实现了从网页跳到app中的activity 的方法,特别重要
myWebView.addJavascriptInterface(new JavaScriptinterface(this), "android");
myWebView.loadUrl("file:///android_asset/index.html");
}
}
3、提供与js交互中需要用到的方法:
package com.lia.webview;
import android.app.Activity;
import android.content.Intent;
public class JavaScriptinterface {
Activity mActivity;
public JavaScriptinterface(Activity mActivity) {
this.mActivity = mActivity;
}
/** 与js交互时用到的方法,在js里直接调用的 */
public void startActivity() {
//此处响应了js中的startActivity()方法,进行跳转;
Intent intent = new Intent();
intent.setClass(mActivity, MainActvity.class);
mActivity.startActivity(intent);
mActivity.finish();
}
}
以上是关于WebView与js的交互的主要内容,如果未能解决你的问题,请参考以下文章
Android:你要的WebView与 JS 交互方式 都在这里了