在Android WebView中處理JavaScript調用,您需要實現WebViewClient
并重寫shouldOverrideUrlLoading()
和onPageFinished()
方法。此外,您還需要啟用JavaScript支持。以下是一個簡單的示例:
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代碼。
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調用。
<!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消息,但您可以根據需要執行任何操作。