flutter - 是否有任何与 Flutter 中的 UIMenuController 等效的小部件,我可以在用户在 webview 中选择一些文本后自定义操作?
问题描述
我使用webview_flutter来显示 webview。现在我想在 webview 中选择一些文本并显示一个弹出操作菜单(类似于 iOS 中的 UIMenuController)来对文本执行一些自定义操作,例如将它们翻译成另一种语言或将它们标记为稍后阅读,那么如何我得到选定的文本?
我用关键字“flutter webview text select”、“flutter webview text edit”、“flutter webview uimenucontroller”等搜索了google和flutter github问题,但我发现没有任何用处。
我用来显示 webview 的代码如下:
class SessionDetailPage extends StatefulWidget {
final Session session;
SessionDetailPage({Key key, @required this.session}) : super(key: key);
@override
_SessionDetailState createState() => new _SessionDetailState();
}
class _SessionDetailState extends State<SessionDetailPage> {
final Completer<WebViewController> _controller = Completer<WebViewController>();
Future<bool> _requestPop() {
Navigator.of(context).pop(widget.session);
return Future.value(false);
}
@override
Widget build(BuildContext context) {
return WillPopScope(
child: Scaffold(
appBar: AppBar(
title: Text(
widget.session.sessionTitle,
),
),
body: Builder(builder: (BuildContext context) {
return WebView(
initialUrl: widget.session.sessionUrlString,
javascriptMode: JavascriptMode.unrestricted,
onWebViewCreated: (WebViewController webViewController) {
_controller.complete(webViewController);
},
onPageFinished: (String url) {
},
);
}),
),
onWillPop: _requestPop,
);
}
}
解决方案
推荐阅读
- django - 部署到多台服务器时如何管理 Django 应用程序的 collectstatic
- javascript - React dropzone uploader extra.reject,dropzoneReject 不适用于接受 MIME 类型以外的自定义扩展
- sql - Postgres 中数值数据类型的精度和小数位数是多少?
- ios - 找到一个数字的最大值为我提供了 Optional()
- visual-studio-code - 如何在扩展中评估 VS Code 环境变量
- java - 有人知道 MongoDB 超时异常的修复方法吗?
- java - 使用 Helidon 2.0.0-M2 在 POST 方法上获取原始 JSON
- jquery - 下次点击时的可变保留
- extjs - 我们如何在 Ext JS 6.6 Modern 工具包中获得 selectOnFocus:真正的功能?
- html - 溢出在内容和填充之间创建了一个小间隙