处理 JavaScript 与 Android WebView 的交互非常简单。 您需要按照以下步骤操作:
- 启用 JavaScript 支持:
WebView 支持 在此处启用 JavaScript很重要,因为它允许 WebView 运行 JavaScript 代码。 要启用 JavaScript,请在 Activity 或 Fragment 中调用 WebView
的 getSettings()
方法,并将 JavaScriptEnabled
属性设置为 true。
WebView webView = findViewById(R.id.webview);
WebSettings webSettings = webView.getSettings();
webSettings.setJavaScriptEnabled(true);
- JavaScript 定义接口:
为了让 Java 代码与 JavaScript 代码交互,您的 WebView 必须定义一个或多个 JavaScript 接口。 这些接口充当 JavaScript 和 Java 之间的桥梁。 例如,如果您想在 JavaScript 中调用名为 MyJavaScriptInterface
的 Java 方法,您可以按如下方式定义它:
公共 类 MyJavaScriptInterface {
私有 TextView textView;
public MyJavaScriptInterface(TextView textView) {
这个.textView = textView;
}
@JavascriptInterface
公共 void processMessage(字符串消息) {
textView.setText(message)
}
}
每个需要被JavaScript调用的方法都必须通过@JavascriptInterface
来调用 请注意,您需要进行更改。 笔记。
- 向 WebView 添加 JavaScript 接口:
定义添加 JavaScript界面。 JavaScript 代码添加到 WebView 中,以便它可以调用这些方法。
TextView textView = findViewById(R.id.textView);
webView.addJavascriptInterface(新 MyJavaScriptInterface(textView),"Android" );
这里我们运行 MyJavaScriptInterface
实例将添加到 WebView 并命名为“Android”。 这允许 JavaScript 代码使用 Android
对象访问 MyJavaScriptInterface
上的方法。
- 加载包含 JavaScript 的网页:
现在允许您加载包含 JavaScript 网页的页面。 当 URL 加载到 WebView 中时,将执行 JavaScript。
webView.loadUrl("https://example.com");
- 处理 JavaScript 回调:
JavaScript 代码如果Java方法被定义,当被调用时,相应的Java方法可以处理回调。 例如,在上面的示例中,JavaScript 在调用 processMessage
方法时可以更新 TextView 的内容。
webView.setWebViewClient(新 WebViewClient() {
@Override
public void onPageFinished(WebView视图, String url) {
//页面加载后执行JavaScript代码
view.evaluateJavascript("(function() { " +
"window.Android.processMessage('来自 JavaScript 的问候!');" +
"})()", null);
}
});
在此示例中,onPageFinished在
方法中使用 evaluateJavascript
。 该方法执行 JavaScript 代码。 此 JavaScript 代码调用您定义的 processMessage
方法来传递消息。
现在您知道如何使用 Android WebView 处理 Java。有脚本的对话。 您可以根据需要扩展这些示例以满足您的特定需求。
以上内容来源于互联网,不代表本站全部观点。 欢迎关注:zhujipindao.com
评论前必须登录!
注册