使用findAllAsync()和findNext(true)搜索WebView;

时间:2014-06-11 15:17:41

标签: android search webview highlight

我正在尝试在我的webView中搜索单词。这是我的搜索方法:

public void filterWebView(String query){

    if (query != null) {
        mQuery = query;
        mWebView.setWebViewClient(new WebViewClient() {

            @Override
            public void onPageFinished(WebView view, String url) {

                if (android.os.Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN) {

                    view.findNext(true);
                    int c = view.findAll(mQuery);
                    try {
                        Method method = WebView.class.getMethod("setFindIsUp", Boolean.TYPE);
                        method.invoke(view, true);
                    } catch (Throwable ignored) {}

                } else {
                    view.findNext(true);
                    view.findAllAsync(mQuery);

                    try {
                        Method method = WebView.class.getMethod("setFindIsUp", Boolean.TYPE);
                        method.invoke(view, true);
                    } catch (Throwable ignored) {}
                }
            }
        });
        mWebView.loadUrl(mDocUrl);
    }
}

它适用于API版本&lt; 16,但对于API 16和&gt; 16,此方法查找所有单词,但findNext()不起作用。

如果我在API&lt; 16中设置查询并调用此方法10次,则会获得下一个结果(如果存在),但每次突出显示相同的单词时,在API&gt; 16中。

我的方法的第二部分有什么问题,在其他之后{... ???

0 个答案:

没有答案