以前知道Android可以和js进行交互,但是一直没有用过,这一次项目中有和js进行交互的需求,所以就研究了一下,下面将会介绍Android程序调用js方法以及js调用Android程序方法。我们只需要几步就可以搞定了,废话不说,走起!!!

第一步:编写相关的html文件demo.html,其中updateHtml()方法是Android程序调用html中js的方法,startFunction()是js调用Android程序的方法,把这个html文件放在assets文件夹下

<html><head><script type="text/javascript">function updateHtml(){ document.getElementById("content").innerHTML =            "你通过 android 中的控件调用了html 中js 的方法";alert("dialog");}</script></head><body>this is my html <a onClick="window.login.startFunction()" href="";>调用java中个的方法</a><span id="content"></span></body></html>

第二步:创建一个 接口,让 html 页面调用

public class HtmlCallJava {public void startFunction() {AlertDialog.Builder ab = new AlertDialog.Builder(MainActivity.this);ab.setTitle("提示");ab.setMessage("通过 js 调用了 java 中的方法");ab.setPositiveButton("确定", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {dialog.dismiss();}});ab.create().show();}}

第三步:代码中对webview进行相应的配置,其中包括向webview注入一个接口,让js调用Android程序的方法


<span style="white-space:pre"></span>@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);// 获取webView 控件final WebView webview = (WebView) findViewById(R.id.webview);// 加上这句话才能使用javascript方法webview.getSettings().setJavaScriptEnabled(true);webview.getSettings().setDefaultTextEncodingName("gbk");// 加载assets目录下面的demo.html 界面webview.loadUrl("file:///android_asset/demo.html");Button button = (Button) findViewById(R.id.button); // 获取button控件// 即"调用html中的js方法"// 按钮// 给button添加事件响应,执行JavaScript的fillContent()方法button.setOnClickListener(new Button.OnClickListener() {public void onClick(View v) {Log.d("MainActivity", "button OnClick");webview.loadUrl("javascript:updateHtml()");}});// 增加接口方法,让html页面调用webview.addJavascriptInterface(new HtmlCallJava(), "login");}

其中在向 addJavascriptInterface(Object object , String name )注入接口的时候,需要注意的是name,name应该是html中对应的name。例如:



打完收工!!!


项目下载


更多相关文章

  1. Kivy A to Z -- Kivycatalog例子无法在Android平台上运行及异常
  2. 详解React Native监听Android回退按键与程序化退出应用
  3. .Net程序员玩转Android开发---(12)ListView显示数据
  4. [置顶] 史上最全selector和shape使用方法 Android ListView 列表
  5. 谈Android下一个apk安装多个程序入口图标
  6. Android 获取内外置存储卡方法
  7. Android Junit 单元测试、异步测试方法简介及异步测试框架指南

随机推荐

  1. android 抽屉的一些小问题
  2. Android应用程序基础
  3. 《IT蓝豹》吹雪花demo,学习android传感器
  4. Android(安卓)CTS 测试总结【转】
  5. Android(安卓)在界面中显示以及输入文本
  6. android udp通信
  7. 【android】关于退出时关闭“后台”显示
  8. 详解 Android(安卓)的 Activity 组件
  9. Ubuntu 系统上编译Android(安卓)系统
  10. android TextView xml中设置最大行数