在Android WebView中处理JavaScript调用,您需要实现WebViewClient
并重写shouldOverrideUrlLoading()
和onPageFinished()
方法。此外,您还需要启用JavaScript支持。以下是一个简单的示例:
- 在您的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代码。
- 在您的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调用。
- 在您的HTML文件中,您可以使用以下JavaScript代码调用Android方法:
WebView Example
当用户点击按钮时,callAndroidToast()
函数将被调用,从而触发Android中的showToast
方法。在这个例子中,我们将显示一个Toast消息,但您可以根据需要执行任何操作。