温馨提示×

webview android如何处理js调用

小樊
81
2024-11-24 17:30:59
栏目: 编程语言

在Android WebView中处理JavaScript调用,您需要实现WebViewClient并重写shouldOverrideUrlLoading()onPageFinished()方法。此外,您还需要启用JavaScript支持。以下是一个简单的示例:

  1. 在您的Activity或Fragment中,创建一个自定义的WebViewClient
import android.webkit.JavascriptInterface;
import android.webkit.WebView;
import android.webkit.WebViewClient;

public class CustomWebViewClient extends WebViewClient {

    @JavascriptInterface
    public void showToast(String message) {
        // 在这里处理JavaScript调用的结果
        Toast.makeText(getApplicationContext(), message, Toast.LENGTH_SHORT).show();
    }
}

注意,我们需要在showToast方法上添加@JavascriptInterface注解,以便将其暴露给JavaScript代码。

  1. 在您的Activity或Fragment中,设置WebView并启用JavaScript支持:
import android.os.Bundle;
import android.webkit.WebSettings;
import android.webkit.WebView;
import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {

    private WebView webView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        webView = findViewById(R.id.webview);
        WebSettings webSettings = webView.getSettings();
        webSettings.setJavaScriptEnabled(true);

        webView.setWebViewClient(new CustomWebViewClient());
        webView.addJavascriptInterface(new CustomWebViewClient(), "Android");

        webView.loadUrl("https://example.com");
    }
}

在这个例子中,我们将自定义的CustomWebViewClient设置为WebView的客户端,并将其添加到WebView中,以便处理JavaScript调用。

  1. 在您的HTML文件中,您可以使用以下JavaScript代码调用Android方法:
<!DOCTYPE html>
<html>
<head>
    <title>WebView Example</title>
    <script type="text/javascript">
        function callAndroidToast() {
            Android.showToast("Hello from JavaScript!");
        }
    </script>
</head>
<body>
    <button onclick="callAndroidToast()">Click me</button>
</body>
</html>

当用户点击按钮时,callAndroidToast()函数将被调用,从而触发Android中的showToast方法。在这个例子中,我们将显示一个Toast消息,但您可以根据需要执行任何操作。

0