如何解决使用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中。然后,您可以从这里调用它。