1.Activity 中 事件修改 webview中内容
2.webview中事件修改activity中的内容
3.webview中的事件,响应js函数
主要代码实现:
@SuppressLint("JavascriptInterface") public class MainActivity extends Activity { private static final String TAG="LocalBrowser"; private final Handler handler=new Handler(); private WebView webView; private TextView textView; private Button button; private class AndroidBridge //这个类中提供各种js可调用的方法。 { public void callAndroid(final String arg) { handler.post(new Runnable(){ public void run() { Log.d(TAG,"calAndroid("+arg+")"); textView.setText(arg); } }); } } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); webView=(WebView)findViewById(R.id.web_view); textView=(TextView)findViewById(R.id.text_view); button=(Button)findViewById(R.id.button); webView.getSettings().setJavaScriptEnabled(true); webView.addJavascriptInterface(new AndroidBridge(), "android"); //将那个实例化的函数类设置为”android"的js接口。 //主要处理解析,渲染网页等浏览器做的事情 webView.setWebChromeClient(new WebChromeClient() { //(WebView上alert是弹不出来东西的,需要定制你的WebChromeClient处理弹出) @Override public boolean onJsAlert(WebView view, String url, String message, JsResult result) { Log.d(TAG,"onJsAlert("+view+","+url+","+message+","+result+")"); Toast.makeText(MainActivity.this, message, 3000).show(); result.confirm(); return true; } });//设置可以被java截获的js事件。 //通过这里切换 assets 中的 html文件 webView.loadUrl("file:///android_asset/index.html"); button.setOnClickListener(new OnClickListener() { public void onClick(View v) { Log.d(TAG,"onClick("+v+")"); webView.loadUrl("javascript:callJS('hello from android')"); //java调用js的函数 } }); } }
js html1文件
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no" /> <title>hello world</title> <script type="text/javascript"> function helloworld() { alert("hello world!") } </script> </head> <body> This is a show “helloworld” default page,your can click this button <button onclick="helloworld()">click me!</button> to show a "hello world" message! </body> </html>
项目源码地址:http://download.csdn.net/detail/flyingsir_zw/9490172