您的位置:首页 > 移动开发 > Android开发

Android中Java 与 JavaScript交互

2016-09-13 20:22 302 查看
至于为什么要这样,不解释!

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线程中运行,不然会会报错。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: