在 Android 中调用 JavaScript268


在 Android 应用程序中,您可以使用 WebView 组件在应用程序中加载和显示 Web 内容。WebView 允许您与加载的 Web 页面进行交互,并调用 JavaScript 函数。本文将指导您如何在 Android WebView 中调用 JavaScript。

创建 WebView

要创建 WebView,请在您的布局文件 (XML) 中使用以下代码:```xml

```

然后,在您的活动类中,获取 WebView 的引用:```java
WebView webView = findViewById(.my_web_view);
```

设置 WebViewClient

WebViewClient 是一个接口,用于处理 WebView 中发生的事件,例如页面加载和 JavaScript 调用。为了能够调用 JavaScript,您需要设置一个 WebViewClient:```java
(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url) {
// 页面加载完成后,您可以在此调用 JavaScript
}
});
```

调用 JavaScript 函数

有两种主要方法可以在 WebView 中调用 JavaScript 函数:

evaluateJavascript()


evaluateJavascript() 方法允许您直接运行 JavaScript 代码:```java
String script = "alert('Hello from Android')";
(script, null);
```

loadUrl()


loadUrl() 方法允许您加载一个包含 JavaScript 代码的 URL:```java
String url = "javascript:alert('Hello from Android')";
(url);
```

从 JavaScript 调用 Android

您还可以从 JavaScript 调用 Android 代码。要做到这一点,您需要在 JavaScript 中定义一个 Android 函数,然后在 Android 代码中实现它:

JavaScript
```javascript
= function(message) {
alert('Received message from Android: ' + message);
};
```


Android
```java
public class JavaScriptInterface {
@JavascriptInterface
public void androidFunction(String message) {
// 在此处理来自 JavaScript 的消息
}
}
```

然后,在设置 WebViewClient 时,将 JavaScriptInterface 添加到 WebView:```java
(new JavaScriptInterface(), "android");
```

最佳实践* 不要在主线程上调用 JavaScript,因为这会阻塞 UI。
* 使用 evaluateJavascript() 而不是 loadUrl() 来调用 JavaScript,因为它更高效。
* 限制您调用 JavaScript 的次数,以优化性能。
* 仔细检查您调用的 JavaScript 代码,以避免安全漏洞。

使用 WebView 组件,您可以轻松地在 Android 应用程序中调用 JavaScript。通过遵循本文中的步骤,您将能够与加载的 Web 页面进行交互,并从 JavaScript 中调用 Android 代码。请务必遵循最佳实践以优化性能和安全性。

2024-12-25


上一篇:JavaScript 中的 `this` 指针

下一篇:JavaScript 对象的定义和使用