首页 > 解决方案 > 是否有任何与 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,
    );
  }
}

标签: flutter

解决方案


推荐阅读