私は、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){}
ジェリービーンで検索を機能させる方法についてのアイデアはありますか? どうもありがとうございました。