今天帮同事看了一个在android的webview中查找keyword然后高亮显示的问题,查看API发现webview已经提供了findAll的函数,ok,那就写一下试试,代码如下:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
editText = new EditText(this);
button = new Button(this);
button.setText("Search");
webView = new WebView(this);
LinearLayout layout = new LinearLayout(this);
layout.setOrientation(LinearLayout.VERTICAL);
layout.addView(editText);
layout.addView(button);
layout.addView(webView);
setContentView(layout);
String content = "<html><body><div>Hello Web view, this is my first web view</div></body></html>";
webView.getSettings().setJavaScriptEnabled(true);
webView.loadData(content, "text/html", "utf-8");
button.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
String keyWord = editText.getText().toString();
webView.findAll(keyWord);
}
});
但是运行之后发现不好使,google了一下,发现可能是一个bug,网上说还需要如下设置(服了google了)
try
{
Method m = WebView.class.getMethod("setFindIsUp", Boolean.TYPE);
m.invoke(webView, true);
}
catch (Throwable ignored){}
这次终于好使了,高兴中。。。,然而同事说如果不用button,在页面load出来后,直接高亮keyword怎么样,我以为没问题但结果杯具了
webView.setWebViewClient(new WebViewClient(){
@Override
public void onPageFinished(WebView view, String url) {
String keyWord = "view";
view.findAll(keyWord);
}
});
这样竟然不好使。。。(泪流满面啊)
竟然数次的测试和调试,终于发现这样是好使的:
webView.setWebViewClient(new WebViewClient(){
@Override
public void onPageFinished(WebView view, String url) {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
String keyWord = "view";
view.findAll(keyWord);
}
});
唉,无语啊。看来可能是和底层的解析渲染执行有关,等有时间看看代码到底是怎么回事。
分享到:
相关推荐
这个样式表通常会包含一些全局的暗色背景和高亮文字的颜色,以便在低光环境下提供更好的阅读体验。例如: ```css body { background-color: #282c34; color: #c5c8c6; } a { color: #61dafb; } ``` 然后,在...
5. **性能优化**:在Android应用中使用WebView加载大量代码可能会导致性能问题,因此可以考虑预处理代码,提前生成高亮后的HTML,减少WebView的实时处理负担。 6. **兼容性问题**:不同的Android版本对WebView的...
总之,“Android BTAndroidWebViewSelection”项目揭示了如何在Android应用中自定义Webview的文字选择功能,同时也展示了Android开发中Webview的一些关键技术和最佳实践。通过这个项目,开发者可以学习到如何增强...
4. **扩展功能**:除了基本的Markdown语法支持,一些MarkdownView实现还可能包含额外的功能,如表格支持、代码高亮、内联图片预览、链接点击事件处理等。 5. **性能优化**:由于Markdown解析和HTML渲染都需要计算...
代码的展示部分,`FlexibleRichTextView`可能采用代码高亮库,如`Highlight.js`或`Android Studio`自带的`KotlinPoet`,以确保代码的可读性和美观性。开发者可以选择不同的编程语言,并根据需要设置行号、复制功能...
【Android WebView选择文字详解】 在Android开发中,WebView是一个非常重要的组件,它允许开发者在应用程序中内嵌网页内容。这个项目“BTAndroidWebViewSelection”专注于WebView中的文本选择功能,这在许多应用...
english version : CodeView CodeView 是一个能显示代码,并且能够进行代码高亮的一个控件。 这里是通过hightlight.js 渲染代码,可以自动识别主流的各种语言 比如java,c++,c#,python,bash,ruby。... android
- 使用`android.graphics.Rect`对象记录选区的边界,根据边界绘制高亮背景,模拟选择效果。 - 实现复制、剪切、粘贴等操作,通过`WebView.copySelection()`、`WebView.cutSelection()`和`WebView.paste()`接口。 ...
`BTAndroidWebViewSelection` 是一个专门针对WebView文字选择功能的开源项目,提供了对WebView内文本的高亮、复制、分享等操作的支持。这个项目对于那些希望增强其应用程序内WebView交互性的开发者来说,具有很高的...
在Android开发中,Webview是一个非常重要的组件,它允许开发者在应用程序中内嵌网页内容,实现与网页的交互。`BTWebViewSelection(webview选择文字)`是一个针对Android Webview的特定功能模块,主要涉及用户在...
在Android开发中,WebView是一个内置组件,用于加载和展示网页内容,但默认的WebView在文字选择方面可能较为简单,无法满足某些高级需求。此开源项目则对此进行了优化,提供了更多的定制化选项。 首先,让我们深入...
在Android开发中,Webview是一个非常重要的组件,它允许我们加载和显示网页内容。`BTAndroidWebViewSelection`项目是专门针对Webview中的文字选择和处理功能进行优化的一个示例。这个开源代码库提供了对Webview内...
`WebView`是Android系统提供的一个用于加载和显示网页的组件。它可以处理复杂的HTML、CSS和JavaScript代码,使得原生应用能够展示丰富的网络内容。在这个项目中,`WebView`可能被用来加载店铺的静态网页或者动态的...
《Android应用源码解析:BTWebViewSelection(Webview选择文字)》 在移动开发领域,尤其是在Android平台上,WebView是一个至关重要的组件,它允许我们在应用程序中嵌入网页内容,实现与网页的交互。本篇将深入解析...
Android提供了多种方式来显示歌词,比如TextView、WebView或者自定义View。在这个案例中,我们可能需要自定义一个View来实现滚动和高亮效果。这个自定义View需要监听MP3播放器的进度,并根据当前播放时间找到对应的...
Android Studio 是Google官方推出的专为Android应用开发设计的集成开发环境(IDE),它基于IntelliJ IDEA,提供了丰富的工具和功能来帮助开发者高效地构建、测试和发布Android应用。本教程将详细介绍如何使用Android ...
Codeview是一个Android库,可让您通过高亮和彩色非常轻松地在Webview中预览代码。 具有样式和语言选择。 您也可以将html和文本注入到webview或任何扩展的webview类中。 该库的启发,并正在努力感谢 。 使用Code...
4. **Webview加载网页**:接收到URL后,可以使用Android内置的Webview组件加载该网页。首先,创建一个Webview实例,设置必要的属性如JavaScript支持,然后调用`loadUrl()`方法加载URL。为了提升用户体验,可以考虑...