3

私は、WebView を持つ小さな Android アプリを持っています。Android 2.2、2.3では、findAllを使用してこのWebビューで検索を実行でき、うまく機能し、検索中の単語を強調表示し、一致する位置までスクロールします。

Android 4.0.X では、検索は機能し、スクロールは正常に行われますが、ハイライトは表示されません (findAll を使用)。

Android 4.1 では、findAll または findAllAsync を使用しても問題ありません。検索はまったく機能しません。私のテストでは、検索を実行しますが、一致する位置までスクロールせず、代わりにページの上部に戻ります。これはばかげています。試合をハイライトすることさえできますが、Web ビューの位置に行かなければ、使いやすさの観点からは役に立たないのと同じくらい良いです。

ソースコードは次のとおりです。

//////////////////////////////
// for android 2.2, 2.3, 4.0.x
//////////////////////////////
myContent.findAll(findBox.getText().toString());
try{
    //Can't use getMethod() in android 4.0.3 as it's a private method
    for(Method m : WebView.class.getDeclaredMethods()){
        if(m.getName().equals("setFindIsUp")){
            m.setAccessible(true);
            m.invoke(myContent, true);
            break;
        }
    }
}catch(Exception ignored){}

次に、ターゲット api 16 の別のメソッドで:

/////////////////////////////
// for android 4.1
/////////////////////////////
myContent.findAllAsync(findBox.getText().toString());
try{
    //Can't use getMethod() in android 4.0.3 as it's a private method
    for(Method m : WebView.class.getDeclaredMethods()){
        if(m.getName().equals("setFindIsUp")){
            m.setAccessible(true);
            m.invoke(myContent, true);
            break;
        }
    }
}catch(Exception ignored){}

ジェリービーンで検索を機能させる方法についてのアイデアはありますか? どうもありがとうございました。

4

0 に答える 0