在移动端用Webview加载网页,然后要在其中搜索查找某个关键词,并在网页中高亮显示这些被找到的关键词,要实现这样一个效果,Android和iOS平台下有各自不同的实现方式。
在Android的Webview当中,提供了Webview.FindAll方法就可以直接实现这个功能。在B4A当中没有直接提供FindAll,但可以利用Reflection库来解决:
Sub FindAll (w As WebView, S As String) As Int
Dim r As Reflector
r.Target = w
Return r.RunMethod2("findAll", S, "java.lang.String")
End Sub
所以在Android当中,这事儿就是这么简单。
而在iOS当中,没有提供FindAll方法,比较可行的方案是通过额外的JavaScript代码来实现。
可以提供关键词高亮功能的js代码如下:
var uiWebview_SearchResultCount = 0;
function uiWebview_HighlightAllOccurencesOfStringForElement(element,keyword) {
if (element) {
if (element.nodeType == 3) { // Text node
while (true) {
//if (counter < 1) {
var value = element.nodeValue; // Search for ke