关注分享主机优惠活动
国内外VPS云服务器

Android WebView如何处理JS交互

处理 JavaScript 与 Android WebView 的交互非常简单。 您需要按照以下步骤操作:

  1. 启用 JavaScript 支持:

WebView 支持 在此处启用 JavaScript很重要,因为它允许 WebView 运行 JavaScript 代码。 要启用 JavaScript,请在​​ Activity 或 Fragment 中调用 WebViewgetSettings() 方法,并将 JavaScriptEnabled 属性设置为 true。

WebView webView = findViewById(R.id.webview);
WebSettings  webSettings = webView.getSettings();
webSettings.setJavaScriptEnabled(true); 
  1. 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来调用 请注意,您需要进行更改。 笔记。

  1. 向 WebView 添加 JavaScript 接口:

定义添加 JavaScript界面。 JavaScript 代码添加到 WebView 中,以便它可以调用这些方法。

TextView textView = findViewById(R.id.textView);
webView.addJavascriptInterface( MyJavaScriptInterface(textView),"Android" );

这里我们运行 MyJavaScriptInterface 实例将添加到 WebView 并命名为“Android”。 这允许 JavaScript 代码使用 Android 对象访问 MyJavaScriptInterface 上的方法。

  1. 加载包含 JavaScript 的网页:

现在允许您加载包含 JavaScript 网页的页面。 当 URL 加载到 WebView 中时,将执行 JavaScript。

webView.loadUrl("https://example.com");
 
  1. 处理 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

未经允许不得转载:主机频道 » Android WebView如何处理JS交互

评论 抢沙发

评论前必须登录!