使用Flutter在WebView中搜索文本

问题描述

我目前有一个应用程序,必须以epub格式阅读书籍,我尝试使用epub_kitty之类的库,但是我需要的其他库有很多错误。无论如何,我需要我的flutter应用程序在Web视图中搜索短语,选择(检查)短语以供用户打开并稍后查看,然后为书添加书签。

我目前正在测试的一个选项是获取我epub的html部分,并使用我的webview向用户显示,但我不知道该怎么做我为应用程序设想的功能( m当前正在尝试在html中进行文本搜索,我正在尝试在我的webview中使用javascript代码,但是它不起作用),有什么想法吗?

解决方法

我认为可能可行的唯一方法是使用Javascript ...这是一个示例

final Completer<WebViewController> _controller = Completer<WebViewController>();    

Column(
    children: [
        FutureBuilder<WebViewController>(
          future: _controller.future,builder: (context,AsyncSnapshot<WebViewController> controller) {
            if (controller.hasData) {
              return FlatButton(
                  child: Text('Find "information"'),onPressed: () {
                    controller.data.evaluateJavascript('self.find("information")');
                  });
            }
            
            return SizedBox(height: 40);
          },),Container(
          height: 400,child: WebView(
            initialUrl: 'https://flutter.dev',javascriptMode: JavascriptMode.unrestricted,onWebViewCreated: (WebViewController webViewController) {
              _controller.complete(webViewController);
            },)
      ],)

如您所见,通过使用evaluateJavascript,您可以运行查找文本所需的代码。至于您需要什么,您可以创建一个更复杂的函数,并在需要时将其添加到html中。然后,您可以从这里调用它。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...