`
yanghaoli
  • 浏览: 285221 次
社区版块
存档分类
最新评论

android java调用javascript示例

 
阅读更多

唉,是不是可以写一个每天进步一点点专题出来了,从零开始搞开发还真是乐趣无穷啊

 
之前找的很多文章都把java和javascript的互相调用写在了一起,像我这种菜鸟根本看不懂呀呀呀呀,终于找到下面这个,文章还是比较直观的,感谢!
 
 
转自:http://blog.csdn.net/Android_Tutor/archive/2010/08/31/5853143.aspx#
====================================================================================================
 

在Android中通过WebView控件,可以实现要加载的页面与Android方法相互调用,我们要实现WebView中的addJavascriptInterface方法,这样html才能调用android方法,在这里我个人觉得有点和DWR相似。

为了让大家容易理解,我写了一个简单的Demo,具体步骤如下:

第一步:新建一个Android工程,命名为WebViewDemo(这里我在assets里定义了一个html页面)。

第二步:修改main.xml布局文件,增加了一个WebView控件还有Button控件,代码如下:

 

  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     android:orientation="vertical"  
  4.     android:layout_width="fill_parent"  
  5.     android:layout_height="fill_parent"  
  6.     >  
  7.     <TextView    
  8.         android:layout_width="fill_parent"   
  9.         android:layout_height="wrap_content"   
  10.         android:text="Welcome to Mr Wei's Blog."  
  11.         />  
  12.     <WebView  
  13.         android:id="@+id/webview"  
  14.         android:layout_width="fill_parent"   
  15.         android:layout_height="wrap_content"   
  16.     />  
  17.     <Button  
  18.         android:id="@+id/button"  
  19.         android:layout_width="fill_parent"  
  20.         android:layout_height="wrap_content"  
  21.         android:text="Change the webview content"  
  22.     />  
  23. </LinearLayout>  

 

第三步:在assets目录下新建一个demo.html文件,代码如下(这里不知道为何多了mce:这几个东东,<script></script>这样是对的):

 

  1. <html>  
  2.     <mce:script language="javascript"><!--  
  3.    
  4.         function fillContent(){  
  5.             document.getElementById("content").innerHTML =   
  6.                  "This Content is showed by Android invoke Javascript function.";  
  7.         }  
  8.       
  9. // --></mce:script>    
  10.   <body>  
  11.     <p><a onClick="window.demo.startMap()" href="">Start GoogleMap</a></p>  
  12.     <p id="content"></p>  
  13.     <p>A Demo ----Android and Javascript invoke each other.</p>  
  14.     <p>Author:Frankiewei</p>  
  15.   </body>  
  16. </html>   

 

第四步:修改主核心程序WebViewDemo.java,代码如下:

 

  1. package com.tutor.webwiewdemo;  
  2. import android.app.Activity;  
  3. import android.content.ComponentName;  
  4. import android.content.Intent;  
  5. import android.os.Bundle;  
  6. import android.view.View;  
  7. import android.webkit.WebSettings;  
  8. import android.webkit.WebView;  
  9. import android.widget.Button;  
  10. public class WebViewDemo extends Activity {  
  11.     private WebView mWebView;  
  12.     private Button mButton;  
  13.     public void onCreate(Bundle savedInstanceState) {  
  14.         super.onCreate(savedInstanceState);  
  15.         setContentView(R.layout.main);  
  16.         setupViews();  
  17.     }  
  18.     //初始化  
  19.     private void setupViews() {  
  20.         mWebView = (WebView) findViewById(R.id.webview);  
  21.         WebSettings mWebSettings = mWebView.getSettings();  
  22.         //加上这句话才能使用javascript方法  
  23.         mWebSettings.setJavaScriptEnabled(true);  
  24.         //增加接口方法,让html页面调用  
  25.         mWebView.addJavascriptInterface(new Object() {  
  26.             //这里我定义了一个打开地图应用的方法  
  27.             public void startMap() {  
  28.                 Intent mIntent = new Intent();  
  29.                 ComponentName component = new ComponentName(  
  30.                         "com.google.android.apps.maps",  
  31.                         "com.google.android.maps.MapsActivity");  
  32.                 mIntent.setComponent(component);  
  33.                 startActivity(mIntent);  
  34.             }  
  35.         }, "demo");  
  36.         //加载页面  
  37.         mWebView.loadUrl("file:///android_asset/demo.html");  
  38.         mButton = (Button) findViewById(R.id.button);  
  39.         //给button添加事件响应,执行JavaScript的fillContent()方法  
  40.         mButton.setOnClickListener(new Button.OnClickListener() {  
  41.             public void onClick(View v) {  
  42.                 mWebView.loadUrl("javascript:fillContent()");  
  43.             }  
  44.         });  
  45.     }  
  46. }  

 

第五步:运行上述工程,查看效果。

    

                        首界面                                           点击按钮时,html内容改变

   点击html的startGoogleMap启动地图应用

0
4
分享到:
评论

相关推荐

    android webview中使用Java调用JavaScript方法并获取返回值

    主要介绍了android webview中使用Java调用JavaScript方法并获取返回值,本文直接给出代码示例,需要的朋友可以参考下

    android javascript扩展示例

    android studio 1.0.2工程。javascript调用android中的java方法。

    Android与Vue的交互的方法示例

    做过 Android 混合开发的,应该都知道 Android 中 Java 代码和 Javascript 代码之间的交互怎么做。 首先回顾一下 Java 和 Javascript 之间的交互。 JavaScript 调用 Java Android 中 WebView 添加供 Html 页面调用的...

    Android平台的JavaScript引擎DuktapeJava.zip

    javascript 调用java方法示例: importClass("android.widget.Toast") Toast.makeText(activity, "Javascript toast", Toast.LENGTH_SHORT).show(); Java 还可以在 JavaScript 的对象方法示例: importClass...

    javascript使用Blob对象实现的下载文件操作示例

    本文实例讲述了javascript使用Blob对象实现的下载文件操作。分享给大家供大家参考,具体如下: Blob对象 前言 环境 操作 总结 Blob是一个类文件的不可变的原始数据对象,非javascript原生数据类型,File对象...

    Android中在WebView里实现Javascript调用Java类的方法

    主要介绍了Android中在WebView里实现Javascript调用Java类的方法,本文直接给出示例,需要的朋友可以参考下

    Ice-demo:基于Zeroc Ice 3.6.1的Android,iOS,Java,Javascript示例,Ice继承地址https

    冰 尊重作者研究,转载请注明出处。 ======== 创建时间 2015-12-28 创建人 邓燎燕 版本号 1.0 ...修复IceApp脚本错误,修改了Ice分布式服务配置说明,添加了IceGrid和IcePatch2的集成,也可以参考 ...

    android-basic-sample:本示例说明如何在Android应用程序中使用AnyChart图表库

    以下屏幕截图显示了项目导入过程的所有步骤: 进阶学习文献资料JavaScript API参考图表游乐场技术支援 执照Android的AnyChart集成示例包括两个部分: 集成示例的代码,该代码允许在Android上使用Javascript库(在本...

    react-native-android-activity:示例:从React Native JavaScript启动Android活动或iOS视图控制器

    该示例的一个,展示了React Native JavaScript和本机代码之间的接口-Android上的Java,iOS上的Objective-C。 原始版本仅适用于Android; 对iOS的支持已于2019年3月添加。 该项目演示了以下内容: 从JavaScript...

    Android-Web-Server:适用于Android和Java的简单且很小的占用空间(&lt;50kb)TCPIP Web服务器

    Java中的http服务器,并在Android中使用示例。 支持的功能支持基本的GET,POST请求渲染HTML文件渲染jpeg,png,gif 动态网页的自定义API(MVC) 支持javascript rendring 多线程,支持多客户端它不做什么? 文件...

    在android的webview中实现websocket通信

    在 GitHub 上,有一个名为 android-websockets 的开源项目,该项目使用 Java NIO 库来实现 WebSocket 技术,可以使得开发者可以在 Android 上使用 WebSocket 技术来实现实时通信。该项目提供了一些示例代码,展示了...

    java开源包8

    WebSocket4J 是一个用 Java 实现的 WebSocket 协议的类库,可使用 Java 来构建交互式 Web 应用。WebSocket4J 并未实现客户端通讯协议,所以不能用它来连接 WebSocket 服务器。 Struts验证码插件 JCaptcha4Struts2 ...

    java开源包1

    WebSocket4J 是一个用 Java 实现的 WebSocket 协议的类库,可使用 Java 来构建交互式 Web 应用。WebSocket4J 并未实现客户端通讯协议,所以不能用它来连接 WebSocket 服务器。 Struts验证码插件 JCaptcha4Struts2 ...

    java开源包4

    WebSocket4J 是一个用 Java 实现的 WebSocket 协议的类库,可使用 Java 来构建交互式 Web 应用。WebSocket4J 并未实现客户端通讯协议,所以不能用它来连接 WebSocket 服务器。 Struts验证码插件 JCaptcha4Struts2 ...

    java开源包11

    WebSocket4J 是一个用 Java 实现的 WebSocket 协议的类库,可使用 Java 来构建交互式 Web 应用。WebSocket4J 并未实现客户端通讯协议,所以不能用它来连接 WebSocket 服务器。 Struts验证码插件 JCaptcha4Struts2 ...

    java开源包6

    WebSocket4J 是一个用 Java 实现的 WebSocket 协议的类库,可使用 Java 来构建交互式 Web 应用。WebSocket4J 并未实现客户端通讯协议,所以不能用它来连接 WebSocket 服务器。 Struts验证码插件 JCaptcha4Struts2 ...

    JAVA上百实例源码以及开源项目源代码

     各种EJB之间的调用源码示例,用远程接口的引用访问EJB、函数将被FirstEJB调用,同时它将调用secondEJB 基于JAVA的UDP服务器模型源代码 2个目标文件 摘要:Java源码,网络相关,UDP  基于JAVA的UDP服务器模型源代码...

    java开源包101

    WebSocket4J 是一个用 Java 实现的 WebSocket 协议的类库,可使用 Java 来构建交互式 Web 应用。WebSocket4J 并未实现客户端通讯协议,所以不能用它来连接 WebSocket 服务器。 Struts验证码插件 JCaptcha4Struts2 ...

    java开源包9

    WebSocket4J 是一个用 Java 实现的 WebSocket 协议的类库,可使用 Java 来构建交互式 Web 应用。WebSocket4J 并未实现客户端通讯协议,所以不能用它来连接 WebSocket 服务器。 Struts验证码插件 JCaptcha4Struts2 ...

    JAVA上百实例源码以及开源项目

     各种EJB之间的调用源码示例,用远程接口的引用访问EJB、函数将被FirstEJB调用,同时它将调用secondEJB 基于JAVA的UDP服务器模型源代码 2个目标文件 摘要:Java源码,网络相关,UDP  基于JAVA的UDP服务器模型源代码...

Global site tag (gtag.js) - Google Analytics