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

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 java 和javascript交互的四种方式

    类似于有参数的Java调用JavaScript,JavaScript也可以调用带有参数的Java方法,只需确保在JavaScript端正确地传递参数。如前所述,通过`MyJsInterface`接口调用`myMethod()`方法并传递参数。 ```javascript // ...

    android javascript扩展示例

    本示例基于Android Studio 1.0.2,主要展示了如何在Android应用中使用WebView组件来实现JavaScript与Android Java代码之间的通信。以下是这个主题的详细知识点讲解: 1. **WebView组件**:WebView是Android SDK中的...

    android 案例java 调用js

    1. **Java调用JavaScript**: - `loadUrl`: 使用WebView的`loadUrl`方法可以加载网页URL或执行JavaScript代码。例如,要执行一段JavaScript代码,我们可以这样做: ```java webView.loadUrl("javascript:...

    Android调用JavaScript.zip

    "Android调用JavaScript.zip"这个压缩包可能包含了关于如何在Android中调用JavaScript代码的相关示例和资源。下面我们将深入探讨这一主题。 1. **WebView组件** Android中的WebView是一个可以加载和显示网页的控件...

    android中实现JavaScript与Java之间实现互相调用

    2. Java调用JavaScript: 使用`loadUrl()`方法可以执行JavaScript代码,例如: ```java webView.loadUrl("javascript:alert('Hello from Java!');"); ``` 三、安全注意事项 为了防止恶意JavaScript代码调用Java...

    安卓Android源码——安卓Android调用JavaScript.rar

    本资源"安卓Android源码——安卓Android调用JavaScript.rar"显然是一个关于如何在Android应用中调用JavaScript的示例代码。下面我们将详细探讨这个主题,了解如何在Android应用中实现JavaScript的调用以及相关的技术...

    Android与Vue的交互的方法示例

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

    Android JS 与Java相互调用学习源码示例

    二、Java调用JS 1. **loadUrl()**: 使用`WebView.loadUrl("javascript:your_function()")`可以调用JavaScript中的函数。这里的`your_function()`是JavaScript中的函数名。 2. **evaluateJavascript()**: Android ...

    Android-为WebView中的Java与JavaScript提供安全可靠的多样互通方案

    然而,使用WebView的`addJavascriptInterface`方法直接暴露Java对象给JavaScript可能存在安全风险,因为这可能导致恶意代码注入,破坏应用的安全性。为了解决这个问题,我们需要采取更安全的方式来实现Java与...

    Android Java和HTML通过JS相互调用

    Java调用JavaScript主要通过`WebView`的`loadUrl()`方法,向页面发送一个JavaScript命令: ```java webView.loadUrl("javascript:(function() { /* JavaScript 代码 */ })()"); ``` 例如,我们可以在Java代码中...

    Android高级应用源码-Android调用JavaScript.zip

    这个"Android高级应用源码-Android调用JavaScript.zip"压缩包提供了关于如何在Android应用中调用JavaScript的示例代码,这对于理解和实践Android与Webview的交互非常有帮助。 首先,Android中的`WebView`组件是实现...

    android java和webview交互demo

    这篇资源文章“android java和webview交互demo”详细介绍了如何在Java驱动的Android应用中使用WebView,并通过JavaScript接口进行数据交换。 **一、WebView基本使用** 1. **添加依赖** 在AndroidManifest.xml中,...

    WebView中 Js 和 Android java代码相互调用

    本文将详细介绍如何在WebView中实现JavaScript与Android Java代码的相互调用。 一、JavaScript调用Android Java代码 1. 注册JavaScript接口: 为了使JavaScript能够调用Android Java代码,我们需要在WebView中注册...

    Android应用源码之Android调用JavaScript.zip

    这个压缩包"Android应用源码之Android调用JavaScript.zip"很可能包含了一个示例项目,展示了如何在Android应用中调用JavaScript代码。让我们详细探讨一下这个主题。 1. **WebView组件**: - Android提供了`WebView...

    安卓Android源码——Android调用JavaScript.zip

    本资源"安卓Android源码——Android调用JavaScript.zip"聚焦于这一主题,提供了如何在Android应用中调用JavaScript的具体实现。下面我们将详细探讨这个过程中的关键知识点。 首先,Android系统提供了`WebView`组件...

    安卓Android源码——安卓Android调用JavaScript.zip

    这个压缩包文件“安卓Android源码——安卓Android调用JavaScript.zip”很可能包含了示例代码和教程,帮助开发者了解如何在Android应用中调用和交互JavaScript。以下是对这个主题的详细讲解: 1. **WebView组件**:...

    安卓Android源码——调用JavaScript.zip

    总结来说,"安卓Android源码——调用JavaScript.zip"可能包含的示例代码将涵盖以上各个部分,演示如何在Android应用中加载网页、启用JavaScript、调用JavaScript函数以及实现JavaScript与Java的双向交互。...

    android和javascript互相调用

    本示例将深入探讨如何实现Android和JavaScript的互相调用,以便于在混合应用开发中创建更加丰富的用户体验。 Android调用JavaScript: 在Android应用中,我们通常使用WebView来加载网页内容。通过WebView提供的`...

Global site tag (gtag.js) - Google Analytics