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

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();
});


  • 9
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值