Kotlin / AndroidのWebView内の検索文字列

Orthophilos

私はAndroidとKotlinの初心者です。サイトからHTMLファイルを取得してWebViewに表示するアプリを開発しています。検索された文字列を検索し、一致する文字列が見つかるまで画面をスクロールする機能をCtrl- F(検索コマンド)として構築する必要がありWebNavigatorsます。そして、次と前の試合へのボタン。

次のコードを試していますが、機能しません。

myWebView.findAllAsync("Test in HTML file") 
myWebView.findNext(true) 

誰かが私を助けたり、私に指示を与えたりできますか?

Orthophilos

最後に、検索して検索した後、私は答えを見つけました。誰にとっても役立つかもしれないので、ここに投稿してください。この記事この質問基づいて、私は自分のコードをビルドしました:

   override fun onCreate(savedInstanceState: Bundle?) {
     /// *... blah blah my code no related to this issue*
    wv_contentArticle.loadUrl("file:///android_asset/articles/w.html") // loading file - just a test
    sv_contentPage.isSubmitButtonEnabled
    // bellow listen the searchview 

    sv_contentPage.setOnQueryTextListener(object :    SearchView.OnQueryTextListener {
        override fun onQueryTextChange(query: String): Boolean {
            return true
        }
        override fun onQueryTextSubmit(query: String): Boolean {

            if (!query.isEmpty()) {
                    sv_contentPage.clearFocus()  // to hide keyboard 
                    wv_contentArticle.findAllAsync(query) // look for string
                    try {
                        val m = WebView::class.java.getMethod("setFindIsUp", 
java.lang.Boolean.TYPE) // THIS WAS MISSING, WITHOUT IT THIS WILL NOT WORK
                        m.invoke(wv_contentArticle, true) // THIS WAS MISSING, WITHOUT IT THIS WILL NOT WORK

                    } catch (ignored: Throwable) {
                    }
            }
        return true
        }
    })
    bt_findNext.setOnClickListener {  wv_contentArticle.findNext(true)  } // find next one
    bt_findPrevious.setOnClickListener {  wv_contentArticle.findNext(false) } // find previous one
}

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事