JS与webview交互 js退出当前webview为例子

来源:互联网 发布:vs 编程入门视频教程 编辑:程序博客网 时间:2024/06/11 04:46

Android 4.2之后 JS调用webview里面的Java程序需要添加注解 @JavascriptInterface

首先在webview里面搭建后台代码片段:

webSettings = mWebView.getSettings();// 设置mwebview属性,能够执行Javascript脚本mWebView.getSettings().setJavaScriptEnabled(true);// 添加JS调用接口mWebView.addJavascriptInterface(new JsMethodObject(), "finishWebView_Android");
这里面的JsMethodObject是新创建的一个内部类,可以把JS调用的方法写在里面,"finishWebView_Android"是新创建的JsMethodObject对象的别名,供前台JS调用的时候用。下面是JsMethodObjec的定义(webview的内部类):

<pre name="code" class="java">private class JsMethodObject {@JavascriptInterface  public void closeActivity() {            mHandler.post(new Runnable() {                  public void run() {                            //appView.loadUrl("javascript:wave()");                            WebActivity.this.finish();                    }            });}}

需要注意的是:1、Android4.2之后必须添加@JavascriptInterface注解

                          2、closeActivity这个必须为public,才能供JS调用


然后是jsp中的代码片段,在这个里面需要添加一个jsp后退回webview的按钮:

<a href="#" id="finishwebview" class="ui-btn ui-icon-back ui-btn-icon-notext ui-corner-all"></a>

这里面用的前台框架是JQuery Mobile

然后在JS里面为这个按钮添加调用本地Java程序的功能:

$("#finishwebview").bind("click", function(){        window.finishWebView_Android.closeActivity();});


0 0
原创粉丝点击