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

Android 中 Java 和 JavaScript 相互调用

2017-08-15 11:10 483 查看

WebView 的使用

mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.loadUrl("file:///android_asset/demo.html");


设置WevView要显示的网页

//打开本包内asset目录下的demo.html文件
myWebView.loadUrl(" file:///android_asset/demo.html ");
//打开本地sd卡内的demo.html文件
myWebView.loadUrl("content://com.android.htmlfileprovider/sdcard/demo.html");
//打开指定互联网URL的html文件
myWebView.loadUrl(" http://www.example.com/demo.html");[/code] 

javascrip 调用 java 代码

要在 js 中执行的 java 方法要加上 @JavascriptInterface,如:

@JavascriptInterface
public  void toMain2(){
Intent intent=new Intent(MainActivity.this,Main2Activity.class);
startActivity(intent);
}


webview 使用 addJavascriptInterface 方法把 java 类传进 js 中,其第一个参数是 java 实例,第二个参数是在 js 中的变量名,==调用此方法也需要使用标签 @SuppressLint(“JavascriptInterface”)==:

@SuppressLint("JavascriptInterface")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
WebView webView= (WebView) findViewById(R.id.web);
webView.getSettings().setJavaScriptEnabled(true);
webView.loadUrl("file:///android_asset/water/index.html");
webView.addJavascriptInterface(this, "ToMain2");

}


html 中使用,也可以携带参数

<button type="button" onclick="ToMain2.toMain2()">打开Main2Activity</button>


java 中调用 javascript 代码

先定义一个 js 方法:

function androidGetJs(msg){
document.getElementById("androidgetjs").innerHTML="来自Android的消息:"+msg;
}


在 java 中通过 webview.loadUrl(“javascript:”) 调用:

webview.loadUrl("javascript:androidGetJs('" + msg + "')");


参考文章

Android与Js调用
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: