在Android中,WebView是一个用于显示网页的视图。要处理用户输入,您需要设置一个WebChromeClient并覆盖onReceivedTitle方法。以下是一个简单的示例:
WebView webView = findViewById(R.id.webView);
// 启用JavaScript支持
WebSettings webSettings = webView.getSettings();
webSettings.setJavaScriptEnabled(true);
// 设置WebChromeClient
webView.setWebChromeClient(new WebChromeClient() {
@Override
public void onReceivedTitle(WebView view, String title) {
super.onReceivedTitle(view, title);
// 在这里处理页面标题更改
}
});
onPageFinished()
方法,并在其中添加一个JavaScript接口。例如,如果您想要处理搜索查询,可以这样做:// 添加JavaScript接口
final WebChromeClient webChromeClient = new WebChromeClient() {
@Override
public void onReceivedTitle(WebView view, String title) {
super.onReceivedTitle(view, title);
// 在这里处理页面标题更改
}
};
webView.setWebChromeClient(webChromeClient);
// 设置WebViewClient以处理页面加载完成事件
webView.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
// 在这里添加JavaScript代码以处理用户输入
webView.evaluateJavascript("(function() { " +
"var inputElements = document.querySelectorAll('.search-input'); " +
"inputElements.forEach(function(element) { " +
"element.addEventListener('input', function() { " +
"window.AndroidInterface.onSearchInput(element.value); " +
"}); " +
"}); " +
"})()", null);
}
});
public class MyJavaScriptInterface {
private TextView searchResultTextView;
public MyJavaScriptInterface(TextView searchResultTextView) {
this.searchResultTextView = searchResultTextView;
}
@JavascriptInterface
public void onSearchInput(String input) {
// 在这里处理用户输入
searchResultTextView.setText("搜索查询: " + input);
}
}
TextView searchResultTextView = findViewById(R.id.searchResultTextView);
MyJavaScriptInterface myJavaScriptInterface = new MyJavaScriptInterface(searchResultTextView);
webView.addJavascriptInterface(myJavaScriptInterface, "AndroidInterface");
现在,当用户在网页上的搜索输入框中输入内容时,Android应用程序将处理该输入并在searchResultTextView
中显示结果。您可以根据需要扩展此示例以处理其他类型的用户输入。