Android中Java 与 JavaScript交互

至于为什么要这样,不解释!

1、javaScript  访问  java

  • a、允许javaScrip访问java
  • b、通过映射建立java与javaScript的连接
  • c、加载包含该javaScript的网页

<!-- a 示例代码-->
    mWebView= (WebView) findViewById(R.id.webview);
    mWebView.getSettings().setJavaScriptEnabled(true);
    mWebView.getSettings().setDefaultTextEncodingName("utf-8");
<!-- b 示例代码 -->
mWebView.addJavascriptInterface(new MediaJsInteration(this),"mediaController");

<!-- c示例代码-->
mWebView.loadUrl(urlPath);

其中MediaJsInteration是与javaScript交互的java代码,就是供javaScript调用的代码;

public class MediaJsInteration {
  private Context mContext;

  public MediaJsInteration(Context context)
  {
    this.mContext=context;
  }
  @JavascriptInterface
  public void test()
  {
  }
}
记得一定要带@JavascriptInterface

2、java 访问  javaScript

通过WebView.loadUrl()方法来调用javaScript的方法;
function callFromJava(str){
        console.log(str);
    }

Java端调用Javascript方法:

public void  javaCallJS(){
        webView.loadUrl("javascript:callFromJava('call from java')");
    }

可以在loadUrl中直接给Javascript方法直接传值,如果Javascript方法有返回值,而WebView.loadUrl()是无法获取到返回值的,如果需要Javascript返回值给Java,可以定义一个Java方法给JavaScript调用把返回值传递给Java。
注意WebView.loadUrl()必须在Ui线程中运行,不然会会报错。





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值