我有一个拥有webview的小型Android应用程序。在android 2.2,2.3中,我可以使用findAll在这个webview上进行搜索,它工作得很好,突出显示被搜索的单词并滚动到匹配的位置。
在android 4.0.X中,搜索工作并滚动正常,但没有突出显示(使用findAll)。
在android 4.1中,使用findAll或findAllAsync,它并不重要,搜索根本不能正常工作。在我的测试中,它执行搜索,但不会滚动到匹配的位置,而是返回到页面的顶部,这很荒谬。它甚至突出了这场比赛,但是从可用性的角度来看,无论是在webview上的位置都是无用的。
这是源代码:
//////////////////////////////
// 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){}
关于如何使搜索工作在果冻豆上的任何想法?非常感谢你。