1.html代码

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"></meta>  <title>Android/Javascript互调Demo</title><script type="text/javascript" language="javascript">function  callJavaScriptMethod(){document.getElementById("content").innerHTML = "Android 调用 Javascript 成功";}</script></head><body><div ><a onClick="window.demo.callJavaMethod()" href="">点击-->JS调用Android代码</a></div><div style="margin:50px 50px 50px 50px;" id="content"></div></body>
</html> 

2.xml布局

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical"android:layout_width="match_parent"android:layout_height="match_parent"><WebViewandroid:id="@+id/webview"android:layout_width="match_parent"android:layout_height="wrap_content" /><Buttonandroid:id="@+id/androidCallJSBtn"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="点击 Android 调用 JavaScript"/></LinearLayout>

3.Activity测试代码

package com.testwebview;import android.annotation.SuppressLint;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.widget.Button;
import android.widget.Toast;public class MainActivity extends Activity {private WebView mWebView;  private Button androidCallJSBtn;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);initView();}@SuppressLint({ "JavascriptInterface", "SetJavaScriptEnabled" })private void initView() {mWebView = (WebView) findViewById(R.id.webview);  WebSettings mWebSettings = mWebView.getSettings();  mWebSettings.setJavaScriptEnabled(true);   //加上这句话才能使用javascript方法  mWebView.addJavascriptInterface(new Object() {//增加接口方法,让html页面调用  public void callJavaMethod() {  Toast.makeText(getApplicationContext(), "JS调用Android成功", Toast.LENGTH_LONG).show();}  }, "demo");  mWebView.loadUrl("file:///android_asset/demo.html");  //加载页面  androidCallJSBtn = (Button) findViewById(R.id.androidCallJSBtn);  androidCallJSBtn.setOnClickListener(new Button.OnClickListener() {  //给button添加事件响应,执行JavaScript的fillContent()方法 public void onClick(View v) {  mWebView.loadUrl("javascript:callJavaScriptMethod()");  }  });  }
}

4.效果图(依次是未调用前、android调用JS、JS调用android)

    

demo地址:http://download.csdn.net/detail/zz7zz7zz/6389669

转载于:https://www.cnblogs.com/james1207/p/3365966.html

[置顶] android 与JavaScript的互相调用相关推荐

  1. android listview标题置顶,Android仿QQ左滑删除置顶ListView操作

    最近闲来无事,于是研究了一下qq的左滑删除效果,尝试着实现了一下,先上效果图: 大致思路原理: - 通过设置margin实现菜单的显示与隐藏 - 监听onTouchEvent,处理滑动事件 上代码 i ...

  2. [置顶] Android自定义控件 芝麻信用分雷达图

    [置顶] Android自定义控件 芝麻信用分雷达图 标签: android自定义雷达芝麻信用 2016-10-23 20:11  3548人阅读  评论(24)  收藏  举报   分类: 自定义控 ...

  3. android imageview 锯齿,[置顶] android 自定义圆角ImageView以及锯齿的处理

    看到很多人开发过程中要使用圆角图片时,解决方法有: 1.重新绘制一张图片 2.通过布局来配置 3.通过重写View来实现 其中1,2在这里就不讲了,重点讲讲方法三的实现. 实现一:通过截取画布一个圆形 ...

  4. android列表实现置顶,Android利用RecyclerView实现全选、置顶和拖拽功能示例

    Android利用RecyclerView实现全选.置顶和拖拽功能示例 发布时间:2020-08-23 16:26:42 来源:脚本之家 阅读:159 作者:爱开发 前言 今天给大家分享是如何在Rec ...

  5. [置顶]Android 面试题汇总

    MicrosoftInternetExplorer402DocumentNotSpecified7.8 磅Normal0 面试题基础储备 1.Activity相关 a.Activity的特点 1.可见 ...

  6. [置顶] Android输入输出机制之来龙去脉之前生后世

    记不住密码怎么办? http://a.app.qq.com/o/simple.jsp?pkgname=com.wa505.kf.epassword 先讲一下基本一般的输入处理方式的知识.一般的输入输出 ...

  7. [置顶] Android数据的四种存储方式SharedPreferences、SQLite、Content Provider和File (二) —— SQLite...

    SQLite是一种转为嵌入式设备设计的轻型数据库,其只有五种数据类型,分别是: NULL: 空值 INTEGER: 整数 REAL: 浮点数 TEXT: 字符串 BLOB: 大数据 在SQLite中, ...

  8. [置顶] Android的IPC访问控制设计与实现

    3.3.1 IPC钩子函数设计与实现 IPC Binder是Android最重要的进程间通信机制,因此,必须在此实施强制访问控制. 1. 修改secuirty.h 打开终端shell,输入指令&quo ...

  9. [置顶]android ListView包含Checkbox滑动时状态改变

    题外话: 在xamarin android的开发中基本上所有人都会遇到这个小小的坎,的确有点麻烦,当时我也折腾了好一半天,如果你能看到这篇博客,说明你和我当初也是一样的焦灼,如果你想解决掉这个小小的坎 ...

最新文章

  1. PyTorch加载模型model.load_state_dict()问题,Unexpected key(s) in state_dict: “module.features..,Expected .
  2. 大叔也说Xamarin~Android篇~原生登陆与WebView的网站如何共享Session
  3. 面向对象语言的new操作
  4. Spring Boot——统一设置返回Json数据风格(Java驼峰命名法转下划线命名法)解决方案
  5. 域控dns无法解析域控_域注册商,DNS和托管
  6. 极验验证码流程-3.图片加密处理 图片移位
  7. 风云获微软2010年MVP和MVP奖杯与奖牌
  8. java未知对象调用其某个方法_引用一个类的属性或调用其方法,必须以这个类的对象为前缀。...
  9. 996 的程序员,只能云养娃吗?
  10. 数学建模相关知识梳理
  11. 计算机专业术语大全(中~英文版)
  12. html中用于排版标题标签是,web端测试也需要懂-HTML排版标签
  13. 搜狗浏览器显示无法解析服务器的DNS,Win10专业版下搜狗浏览器DNS解析失败
  14. 马化腾:与CNTV合作是产业的延展
  15. 服务器系统开机密码怎么关闭,windows server2012怎么去除开机密码
  16. 阻止事件冒泡 阻止浏览器的默认行为
  17. 编码规范汇总【持续更新】
  18. Arduino与Proteus仿真实例-OLED显示屏(SSD1306)I2C驱动仿真
  19. 最有意思的100条英语(转)
  20. css简单实现一类卡片(自用笔记)

热门文章

  1. NYOJ31 - 5个数求最值
  2. linux 会不会受到永恒之蓝漏洞,永恒之蓝漏洞复现(ms17-010)
  3. 对象创建的过程 java_Java 对象创建过程
  4. JQueryDOM之CSS操作
  5. jquery绑定方法on的
  6. UnityShader26:运动模糊
  7. bzoj 1647: [Usaco2007 Open]Fliptile 翻格子游戏(枚举)
  8. bzoj 4236: JOIOJI(map+pair)
  9. 利用中值滤波而不是均值滤波去除椒盐噪声(脉冲噪声)
  10. [bug解决] Ubantu打不开Typora:typora error while loading shared libraries libXss.so.1