android js调用java,Android中在WebView里实现Javascript调用Java类的方法

为了方便网页和Android应用的交互,Android系统提供了WebView中JavaScript网页脚本调用Java类方法的机制。只要调用addJavascriptInterface方法即可映射一个Java对象到JavaScript对象上。

1、映射Java对象到JavaScript对象上

复制代码 代码如下:

mWebView = (WebView) findViewById(R.id.wv_content);

mWebView.setVerticalScrollbarOverlay(true);

final WebSettings settings = mWebView.getSettings();

settings.setSupportZoom(true);

//WebView启用Javascript脚本执行

settings.setJavaScriptEnabled(true);

settings.setJavaScriptCanOpenWindowsAutomatically(true);

//映射Java对象到一个名为”js2java“的Javascript对象上

//JavaScript中可以通过"window.js2java"来调用Java对象的方法

mWebView.addJavascriptInterface(new JSInvokeClass(), "js2java");

复制代码 代码如下:

/**网页Javascript调用接口**/

class JSInvokeClass {

public void back() {

activity.finish();

}

}

2、JavaScript调用Java对象示例

调用上述JSInvokeClass类对象的back方法,如下:

复制代码 代码如下:

window.js2java.back();

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android,您可以使用WebView来加载一个网页,然后通过JavaScriptJava代码进行交互。下面是一个示例: 首先,在您的Java代码,您需要定义一个并将其公开给JavaScript使用。例如: ```java public class MyJavaScriptInterface { Context mContext; MyJavaScriptInterface(Context context) { mContext = context; } @JavascriptInterface public void showToast(String toast) { Toast.makeText(mContext, toast, Toast.LENGTH_SHORT).show(); } } ``` 在这,我们定义了一个名为 `MyJavaScriptInterface` 的,并将其传递给 `Context`,以便我们可以在其显示Toast消息。我们还定义了一个名为 `showToast` 的方法,并使用 `@JavascriptInterface` 注释将其标记为可以从JavaScript调用。 接下来,在您的Activity,您需要启用JavaScript,并将您的Java对象添加到WebView。例如: ```java WebView webView = (WebView) findViewById(R.id.webview); webView.getSettings().setJavaScriptEnabled(true); webView.addJavascriptInterface(new MyJavaScriptInterface(this), "Android"); webView.loadUrl("file:///android_asset/index.html"); ``` 在这,我们首先获取WebView实例,然后启用JavaScript。接下来,我们将 `MyJavaScriptInterface` 实例添加到WebView,并将其命名为 `Android`,这是JavaScript将使用的名称。最后,我们使用 `loadUrl` 方法WebView加载到我们的HTML文件。 最后,在您的JavaScript代码,您可以使用以下方式调用Java方法: ```javascript Android.showToast("Hello World!"); ``` 在这,我们使用我们在Java代码定义的名称 `Android` 来调用 `showToast` 方法,并将消息传递给它。在这种情况下,我们将显示一个Toast消息,显示 "Hello World!"。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值