上一篇博客 Android-WebView与本地HTML (HTML调用-->Java的方法) 介绍了 JavaScript 调用--> Java中的方法,而此篇博客是介绍 Java 调用---> JavaScript中的方法

上一篇博客 Android-WebView加载网络图片&网页 介绍了 使用WebView去加载网络上的图片与网页;

此篇博客专门介绍 Android-WebView与本地HTML (HTML调用-->Java的方法), 其实对于WebView来说 无论是本地HTML 还是 网络HTML ,代码操作方式都是相似的,只是loadUrl(1.网络链接 或 2.本地链接)




Java 调用 ---> JavaScript的方法:

Activity:

  1. package cn.h5;
  2.  
  3. import android.app.Activity;
  4. import android.os.Bundle;
  5. import android.view.View;
  6. import android.webkit.WebView;
  7. import android.widget.EditText;
  8.  
  9. public class MainActivity4 extends Activity {
  10.  
  11. private EditText etName;
  12. private WebView webView;
  13.  
  14. @Override
  15. protected void onCreate(Bundle savedInstanceState) {
  16. super.onCreate(savedInstanceState);
  17.  
  18. setContentView(R.layout.activity_main4);
  19.  
  20. etName = findViewById(R.id.et_name);
  21.  
  22. /**
  23. * 定义此WebView 用于去展现本地HTML
  24. */
  25. webView = findViewById(R.id.wv_webview);
  26.  
  27. /**
  28. * WebView默认是不能够执行javascript
  29. * 以下代码是设置>>允许webview能够执行javascript代码
  30. */
  31. webView.getSettings().setJavaScriptEnabled(true);
  32.  
  33. // 这里不需要设置 webView.addJavascriptInterface,是因为JavaScript不调用-->Java的方法
  34.  
  35. /**
  36. * 加载本地的HTML文件
  37. */
  38. webView.loadUrl("file:///android_asset/test2.html");
  39. }
  40.  
  41. /**
  42. * Button onClick 添加名字
  43. * @param view
  44. */
  45. public void addName(View view) {
  46.  
  47. /**
  48. * 让WebView去执行JavaScript代码
  49. * 让WebView去执行JavaScript的my_function方法
  50. *
  51. * JavaScript方法:
  52. * function my_function(myname) {
  53. * document.getElementById("demo").innerHTML = "Java设置我的值名字是:" + myname;
  54. * }
  55. */
  56. webView.loadUrl("javascript:my_function(" + etName.getText().toString() + ")");
  57. }
  58. }

activity的布局:

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout
  3. xmlns:android="http://schemas.android.com/apk/res/android"
  4. android:orientation="vertical"
  5. android:layout_width="match_parent"
  6. android:layout_height="match_parent">
  7.  
  8. <LinearLayout
  9. android:layout_width="match_parent"
  10. android:layout_height="wrap_content"
  11. android:orientation="horizontal">
  12.  
  13. <EditText
  14. android:id="@+id/et_name"
  15. android:layout_width="0dp"
  16. android:layout_height="wrap_content"
  17. android:layout_weight="1"
  18. android:hint="请输入给JS的名字"
  19. />
  20.  
  21. <Button
  22. android:layout_width="wrap_content"
  23. android:layout_height="wrap_content"
  24. android:text="添加"
  25. android:onClick="addName"
  26. />
  27.  
  28. </LinearLayout>
  29.  
  30. <!--
  31. 定义WebView
  32. 1.WebView可以展现处理本地的HTML相关;
  33. 2.WebView可以展现处理网络的HTML相关;
  34. 3.WebView可以制作自定义浏览器;
  35. ....
  36. -->
  37. <WebView
  38. android:id="@+id/wv_webview"
  39. android:layout_width="match_parent"
  40. android:layout_height="wrap_content"
  41. android:layout_marginTop="60dp">
  42. </WebView>
  43.  
  44. </LinearLayout>

test2.html:

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  2. <html>
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  5.  
  6. <!-- viewport的宽度等于设备宽度,viewport会根据屏幕宽度自动适应,并且对图片和文字进行缩放显示 -->
  7. <meta name="viewport" content="initial-scale=1.0" />
  8.  
  9. <title>Web页面</title>
  10.  
  11. <script type="text/javascript">
  12.  
  13. function my_function(myname) {
  14. document.getElementById("demo").innerHTML = "Java设置我的值名字是:" + myname;
  15. }
  16.  
  17. </script>
  18.  
  19. </head>
  20.  
  21. <body>
  22.  
  23. 这是一个html页面,现在在WebView中运行
  24.  
  25. <p id = "demo"></p>
  26.  
  27. </body>
  28.  
  29. </html>

执行结果:

Android-WebView与本地HTML (Java调用--->HTML的方法)的更多相关文章

  1. Android-WebView与本地HTML (Java调用--->HTML的方法)-(new WebView(this)方式)

    之前的博客,Android-WebView与本地HTML (Java调用--->HTML的方法),是在 findViewById(R.id.webview);,来得到WebView, 此博客使用 ...

  2. 原生java调用webservice的方法,不用生成客户端代码

    原生java调用webservice的方法,不用生成客户端代码 2015年10月29日 16:46:59 阅读数:1455 <span style="font-family: Aria ...

  3. Android使用JNI(从java调用本地函数)

    当编写一个混合有本地C代码和Java的应用程序时,需要使用Java本地接口(JNI)作为连接桥梁.JNI作为一个软件层和API,允许使用本地代码调用Java对象的方法,同时也允许在Java方法中调用本 ...

  4. Android WebView选择本地文件上传

    This sample demonstrate android webview choose file to upload. I just implement the client code ,the ...

  5. Android NDK开发 JNI操作java构造方法,普通方法,静态方法(七)

    Android NDK开发 JNI操作java普通.静态.构造方法 1.Jni实例化一个Java类的实例jobject 1.通过FindClas( ),获取Java类的的jclass 2.通过GetM ...

  6. Java调用webservice接口方法

                             java调用webservice接口   webservice的 发布一般都是使用WSDL(web service descriptive langu ...

  7. Java调用动态库方法说明-最详细

    Java不能直接调用由c或者c++写得dll(TF_ID.dll),所以只能采用jni得方法,一步一步生成符合规范得dll文件(假设叫FANGJIAN.dll),在FANGJIAN.dll这个文件里来 ...

  8. Android WebView 不支持 H5 input type="file" 解决方法

    最近因为赶项目进度,因此将本来要用原生控件实现的界面,自己做了H5并嵌入webview中.发现点击H5中 标签 不能打开android资源管理器. 通过网络搜索发现是因为 android webvie ...

  9. Java调用.NET webservice方法的几种方式

    最近做项目,涉及到web-service调用,现学了一个星期,现简单的做一个小结.下面实现的是对传喜物流系统(http://vip.cxcod.com/PodApi/GetPodStr.asmx?ws ...

随机推荐

  1. [JAVA]多线程下如何确定执行顺序性

    最近在讨论一个下载任务:要求文件下载后进行打包,再提供给用户下载: 如何确保打包的线程在所有下载文件的线程执行完成后进行呢? 看看下面三个兄弟的本事: CountDownLatch.CyclicBar ...

  2. Python Numpy中transpose()函数的使用

    在Numpy对矩阵的转置中,我们可以用transpose()函数来处理. 这个函数的运行是非常反常理的,可能会令人陷入思维误区. 假设有这样那个一个三维数组(2*4*2): array ([[[ 0, ...

  3. No goals have been specified for this build. You must specify a valid lifecycle phase or a goal in the format <plugin-prefix>:<goal> or <plugin-group-id>:<plugin-artifact-id>[:<plugin-version>]:<goal

    No goals have been specified for this build. You must specify a valid lifecycle phase or a goal in t ...

  4. ListView item中有button或EditText时 点击事件失效问题的解决

    加入:android:descendantFocusability="blocksDescendants" 代码如下: <LinearLayout xmlns:android ...

  5. dedecms首页搜索 添加仿百度下拉框

    1:找到uploads/templets/default/head.htm 2: 找到 <input name="q" type="text"  clas ...

  6. mysql.lib 的使用

    一 说明      mysql.lib 提供了很多方便的操作,同时结合 vector 使用十分方便. 二 使用    1 声明需要用到的变量 static MYSQL s_mysql[DATABASE ...

  7. SVN基本操作 (zz)

    SVN基本操作 分类: LINUX 原文地址:SVN基本操作 作者:tuyer 文章摘要:SVN 基本操作:SVN是什么 Svn是一个离线的代码管理,可以多个人一起修改,然后再将修改的内容提交到Svn ...

  8. linux_开启mysql服务

    想要连接mysql的时候必须先开启mysql的服务 service mysqld start mysql -u root -p 输入密码

  9. MySql常用命令集

    MySql 常用命令集 Mysql常用命令 show databases; 显示数据库 create database name; 创建数据库 use databasename; 选择数据库 drop ...

  10. while (~scanf("%d%d",&m,&n))什么用的?

    ACM中比较常见,其功能是循环从输入流读取m和n,直到遇到EOF为止,等同于while (scanf("%d%d",&m,&n)!=EOF). scanf()函数返 ...