Android WebView中javascript和java的互相调用
2014-09-28 15:44
691 查看
在Android的WebView中我们可以实现Java代码和javascript代码的互相调用,下面用一个demo说明:
1、首先是布局文件,比较简单,上面一个Button,下面一个WebView,这个就不上xml代码了
2、然后是html文件,这里测试用的是写好的html文件,放在Android工程的assets目录下,命名为test.html,其内容为:
在Activity中,主要代码如下:
当点击页面上方的show alert按钮时,会调用js中的方法,执行结果如下图:
当点击WebView中的show toast按钮时,将会通过js代码调用Activity中的showToast()方法,显示一个Toast,执行结果如下图:
1、首先是布局文件,比较简单,上面一个Button,下面一个WebView,这个就不上xml代码了
2、然后是html文件,这里测试用的是写好的html文件,放在Android工程的assets目录下,命名为test.html,其内容为:
<script language='javascript'> <!-- 该方法是被Java代码调用的 --> function test(){ alert('my name is yubo'); } <!-- 该方法最后将调用Java代码中的showToast()方法 --> function btnclick(){ client.showToast(); } </script> <!-- html显示文本 --> hello, world! <br/> <!-- html显示按钮 --> <input type="button" value="show toast" onclick="btnclick()"/>
在Activity中,主要代码如下:
package com.example.testjs; import android.os.Bundle; import android.annotation.SuppressLint; import android.app.Activity; import android.view.View; import android.webkit.WebChromeClient; import android.webkit.WebView; import android.widget.Toast; @SuppressLint("SetJavaScriptEnabled") public class MainActivity extends Activity { private WebView webView; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); webView = (WebView) findViewById(R.id.webview); //设置WebView支持javascript webView.getSettings().setJavaScriptEnabled(true); //让WebView加载本地html文件 webView.loadUrl("file:///android_asset/test.html"); webView.setWebChromeClient(new WebChromeClient()); //设置WebView的js接口,通过此处的设置,让js可以调用Java代码 webView.addJavascriptInterface(this, "client"); } //这是Activity中显示的按钮的点击事件,测试通过Java调用js方法 public void btnClick(View view){ webView.loadUrl("javascript:test()"); } //这是将会被js调用的Java方法,当html文件中的按钮被点击时执行该方法 public void showToast(){ Toast.makeText(this, "this function is called by js", Toast.LENGTH_SHORT).show(); } }程序运行时的界面如下:
当点击页面上方的show alert按钮时,会调用js中的方法,执行结果如下图:
当点击WebView中的show toast按钮时,将会通过js代码调用Activity中的showToast()方法,显示一个Toast,执行结果如下图:
相关文章推荐
- Android开发,WebView下Java和JavaScript互相调用(2)
- 在android的webview中 javascript与java代码互相调用
- android webview中js与java互相调用
- Android WebView中使用Java调用JavaScript方法并获取返回值
- Android的Webview中,javascript如何调用java方法
- android webview中使用Java调用JavaScript方法并获取返回值
- 利用WebView通过javascript调用android java方法
- Android在使用WebView时,通过Javascript调用JAVA函数
- Android中WebView和JavaScript(JS)的互相调用
- android-WebView详解实例(JavaScript调用Java方法,Java调用JavaScript方法)
- Android中WebView实现Javascript调用Java类方法
- Android中WebView实现Javascript调用Java类方法
- android中Webview与javascript的交互(互相调用)
- Android中Webview与javascript的交互(互相调用)
- Android中Webview使用javascript调用事先定义好的Java函数
- Android开发,WebView下Java和JavaScript相互调用(1)
- Android的Webview中,javascript如何调用java方法
- Android的Webview中,javascript如何调用java方法
- Android WebView java和js互相调用
- android中Webview与javascript的交互(互相调用)