`
ouyangfeng521
  • 浏览: 248680 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

android javascript 调用activity

阅读更多

WebView 里有一个 addJavascriptInterface (Object obj, String interfaceName)方法,object为一个实例对象,你想用javascript调用的函数写在这代码如下:

 

package com.webview;

import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.util.Log;
import android.webkit.JsResult;
import android.webkit.WebChromeClient;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.widget.Toast;

public class MainActivity extends Activity {

    private static final String LOG_TAG = "WebViewDemo";

    private WebView mWebView;

    private Handler mHandler = new Handler();

    @Override
    public void onCreate(Bundle icicle) {
        super.onCreate(icicle);
        setContentView(R.layout.main);
        mWebView = (WebView) findViewById(R.id.webview);

        WebSettings webSettings = mWebView.getSettings();
        webSettings.setSavePassword(false);
        webSettings.setSaveFormData(false);
        webSettings.setJavaScriptEnabled(true);
        webSettings.setSupportZoom(false);

        mWebView.addJavascriptInterface(new DemoJavaScriptInterface(), "demo");

        mWebView.loadUrl("http://192.168.1.201:8080/java.html");
    }

    final class DemoJavaScriptInterface {

        DemoJavaScriptInterface() {
        }

        /**
         * This is not called on the UI thread. Post a runnable to invoke
         * loadUrl on the UI thread.
         */
        public void clickOnAndroid() {
            mHandler.post(new Runnable() {
                public void run() {
                   // mWebView.loadUrl("javascript:wave()");
                	Toast.makeText(getBaseContext(), "123", Toast.LENGTH_SHORT).show();
                }
            });

        }
    }

    /**
     * Provides a hook for calling "alert" from javascript. Useful for
     * debugging your javascript.
     */
    final class MyWebChromeClient extends WebChromeClient {
        @Override
        public boolean onJsAlert(WebView view, String url, String message, JsResult result) {
            Log.d(LOG_TAG, message);
            result.confirm();
            return true;
        }
        
    }
}

 在html里调用写法如下:

 <a onClick="window.demo.clickOnAndroid()">click me</a>
 

 

分享到:
评论

相关推荐

    Android调用JavaScript_android源码.zip

    Android调用JavaScript以及JavaScript调用Android是Android应用开发中的重要技能,它允许我们充分利用WebView的能力,实现更丰富的交互体验。理解其工作原理和源码机制,有助于我们更好地优化性能和提升安全性。

    免费Android创建UI:用javascript与Activity进行交互

    在WebView中嵌入JavaScript代码以调用Android方法,以及如何从JavaScript调用Android方法,实现两者之间的数据交换和功能调用。通过具体的代码示例,展示了如何在Android应用中设置WebView,如何使用...

    android 浏览器 调用系统下载功能

    需要注意的是,为了安全起见,从JavaScript调用Android方法时,应使用`@JavascriptInterface`注解,以防止恶意代码注入。 4. **下载管理器**:Android提供了DownloadManager服务,它是系统级的下载管理工具,可以...

    Android创建UI的新思路:用javascript与Activity进行交互.zip

    - JavaScript调用Android:通过`window.androidMethod()`形式的调用,JavaScript可以触发Android接口中的方法。 - Android调用JavaScript:使用`loadUrl("javascript:javascriptFunction()")`或者`...

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

    6. **Android调用JavaScript**:除了让JavaScript调用Android方法,我们也可以反过来,通过`loadUrl()`方法来执行JavaScript代码: ```java webView.loadUrl("javascript:yourJSFunction()"); ``` 7. **注意事项**...

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

    - `addJavascriptInterface()`方法可以让Java对象暴露给JavaScript环境,以实现JavaScript调用Java方法。需要注意的是,为了安全起见,从Android 4.2 (API Level 17)开始,暴露的对象必须通过`@JavascriptInterface...

    Android webview调用相机和相册

    这里需要用到WebView的`addJavascriptInterface`方法,创建一个Java对象并暴露给JavaScript调用。例如,我们可以创建一个名为`WebAppInterface`的类: ```java public class WebAppInterface { private Context ...

    Android下WebView中调用系统相机拍照范例

    3. 在网页中通过JavaScript调用这个接口。 4. 处理权限请求,确保应用有权限访问相机和外部存储。 5. 在相机活动返回后,更新网页以显示拍摄的照片。 通过这样的方式,你可以在Android应用的WebView中无缝集成系统...

    Android创建UI的新思路:用javascript与Activity进行交互.rar

    这样,JavaScript就可以调用这些方法,从而触发Android原生代码的行为,如启动一个新的Activity、访问本地存储或者调用系统服务。 3. JavaScript通信API: Android提供了`WebView.addJavascriptInterface()`方法,...

    【Android精品资源】创建UI的新思路:用javascript与Activity进行交互

    1. **JavaScriptInterface**: Android系统提供了`addJavascriptInterface()`方法,允许我们在WebView中注册一个Java对象,这个对象的公共方法将暴露给JavaScript调用。这样,JavaScript可以通过调用这些方法来与...

    UE和Android互相调用

    2. **Java与C++交互**:在UE中,我们可以使用Android Native Activity来启动UE应用程序。在Android端,我们需要编写一个Java类,该类继承自`ANativeActivity`,并处理生命周期事件。然后,通过JNI(Java Native ...

    Android应用源码创建UI的新思路:用javascript与Activity进行交互.zip

    3. **JavaScript调用Android方法** 在HTML和JavaScript代码中,可以通过`window.android`(这里是我们在WebView中注册的名称)来调用Android的方法。例如: ```javascript window.android.showToast('Hello from ...

    Android创建UI的新思路:用javascript与Activity进行交互_Android.rar

    Android允许我们在Java代码中定义一个接口,然后在WebView中通过JavaScript调用。这是JavaScript与Activity交互的基础。首先,你需要在Activity中创建一个接口类,并将其添加到WebView的JavaScriptInterface属性中。...

    Android创建UI的新思路:用javascript与Activity进行交互

    然而,随着Web技术的发展,一种新的UI创建思路逐渐被引入——利用JavaScript与Android Activity进行交互,实现更灵活、更快速的界面开发。这种技术结合了Web和原生应用的优点,为开发者提供了更多可能性。 ...

Global site tag (gtag.js) - Google Analytics