Android Webview - 如何导航到搜索文本的下一次出现
Android Webview - how to navigate to the NEXT occurence of the searched text
在 WebView 中搜索文本很容易。导航到搜索到的文本的第一次出现是这样的:
webView.findAllAsync(whatToFind);
webView.setFindListener((i, i1, b) -> {
if (b) {
webView.findNext(true);
}
});
如何导航到搜索到的文本的 NEXT 处?
我试过了,但这不会导航到下一个事件。
webView.findNext(true);
我是这样加载webview的:
webView.loadDataWithBaseURL("", formatHtmlContent(content), "text/html", "UTF-8", "");
解决方案:感谢Du.Fantasy:
不要使用 'setFindListener' - 除非你真的需要它。使用 findAllAsync 时注意时间。
只调用 webView.findNext(true);
就够了,但是你需要确保在页面完全加载之前调用webView.findAllAsync("string");
。例如在 onPageFinished
中调用它,甚至延迟几秒钟。我在 Pixel 3 上测试过,它工作正常。我已经录制了视频,但我不知道如何在此处 post。
eidt:请看下面的 gif:
在 WebView 中搜索文本很容易。导航到搜索到的文本的第一次出现是这样的:
webView.findAllAsync(whatToFind);
webView.setFindListener((i, i1, b) -> {
if (b) {
webView.findNext(true);
}
});
如何导航到搜索到的文本的 NEXT 处?
我试过了,但这不会导航到下一个事件。
webView.findNext(true);
我是这样加载webview的:
webView.loadDataWithBaseURL("", formatHtmlContent(content), "text/html", "UTF-8", "");
解决方案:感谢Du.Fantasy: 不要使用 'setFindListener' - 除非你真的需要它。使用 findAllAsync 时注意时间。
只调用 webView.findNext(true);
就够了,但是你需要确保在页面完全加载之前调用webView.findAllAsync("string");
。例如在 onPageFinished
中调用它,甚至延迟几秒钟。我在 Pixel 3 上测试过,它工作正常。我已经录制了视频,但我不知道如何在此处 post。
eidt:请看下面的 gif: