如何在Flutter中显示带有提交按钮和隐藏输入字段的HTML表单

桑杰·沙玛(Sanjay Sharma)

我有一个API可以返回带有隐藏输入字段的html表单(输入字段的值是从其他一些API获取的),post方法和Submit按钮。我想在列表卡上显示该表单按钮,当用户单击“提交”按钮时,它应该打开另一个网页。你能告诉我Flutter / Android是否有任何可能的方法吗?是否可以使用任何库提交请求并将html响应发送到应用内浏览器?请让我知道是否可以实现。

桑杰·沙玛(Sanjay Sharma)

我有一个解决方法。

import 'package:flutter/material.dart';
import 'package:flutter_widget_from_html/flutter_widget_from_html.dart';
import 'package:webview_flutter/webview_flutter.dart' as webview_flutter;

const kHtml = """
Foo bar.
<form action="https://the-url-with-post-method/post" method="POST">
  <input type="hidden" name="foo" value="bar" />
  <input type="submit" value="Submit">
</form>
The end.
""";

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) => MaterialApp(
        home: Scaffold(
          appBar: AppBar(title: Text('issue 126')),
          body: HtmlWidget(
            kHtml,
            factoryBuilder: (c) => _CustomWidgetFactory(c),
          ),
        ),
      );
}

class _CustomWidgetFactory extends WidgetFactory {
  _CustomWidgetFactory(HtmlWidgetConfig config) : super(config);

  @override
  NodeMetadata parseLocalName(NodeMetadata meta, String localName) {
    if (localName != 'form') return super.parseLocalName(meta, localName);

    return lazySet(null,
        buildOp: BuildOp(
          onWidgets: (meta, _) => [
            Builder(
              builder: (context) => RaisedButton(
                child: Text("Submit this form."),
                onPressed: () => Navigator.of(context).push(MaterialPageRoute(
                    builder: (_) => _FormSubmit(meta.domElement.outerHtml))),
              ),
            ),
          ],
        ));
  }
}

class _FormSubmit extends StatelessWidget {
  final String html;

  _FormSubmit(String formHtml)
      : html = """<html>
<body onload="document.getElementsByTagName('form')[0].submit();">
  <p>Loading...</p>
  <div style="opacity: 0">$formHtml</div>
</body>
</html>""";

  @override
  Widget build(BuildContext context) => Scaffold(
        appBar: AppBar(),
        body: webview_flutter.WebView(
          initialUrl: Uri.dataFromString(
            html,
            mimeType: 'text/html',
          ).toString(),
          javascriptMode: webview_flutter.JavascriptMode.unrestricted,
        ),
      );
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

HTML 表单 onsubmit 无法在某些带有隐藏提交按钮和只读输入的浏览器上触发

来自分类Dev

如何在烧瓶中创建带有简单文本字段和提交按钮的搜索框?

来自分类Dev

如何将响应放入带有 javascript 数组和按钮的 html 表单中以在表单字段中获取响应

来自分类Dev

使用带有提交按钮和重置按钮的JavaScript计算表单中的两个字段

来自分类Dev

使用带有提交按钮和重置按钮的JavaScript计算表单中的两个字段

来自分类Dev

如何在表单中仅提交1个输入字段?

来自分类Dev

单击html表单中的提交按钮时,如何在html和javascript中添加div面板?

来自分类Dev

提交带有按钮的表单(HTML)

来自分类Dev

带有按钮和html的Javascript新输入字段

来自分类Dev

带有PHP的Angular JS,带有输入字段和提交按钮

来自分类Dev

如何在JQM日期框输入字段中隐藏按钮?

来自分类Dev

html / javascript如何在单击按钮时显示带有方法的用户输入?

来自分类Dev

如何在登录表单上启用提交按钮和[输入]键提交操作?

来自分类Dev

如何在登录表单上启用提交按钮和[输入]键提交操作?

来自分类Dev

提交表单时如何获取隐藏输入字段的值?

来自分类Dev

如何创建一个只有三个提交按钮的带有三个文本输入字段的表单

来自分类Dev

如何区分单击提交按钮和单击输入以提交表单?

来自分类Dev

如何禁用表单提交按钮,直到所有输入字段均已填写?ReactJS ES2015

来自分类Dev

如何在HTML表单中创建美元金额输入字段?

来自分类Dev

如何将HTML隐藏的表单字段提交到iPad iOS Safari和/或Chrome?

来自分类Dev

如何在ViewPager中隐藏和显示带有片段的FloatingActionButton?

来自分类Dev

如何在php中显示和隐藏带有会话的菜单

来自分类Dev

如何在闪亮的提交按钮上隐藏表单?

来自分类Dev

如何制作带有登录输入、输入区域和提交按钮的 tkinter 程序

来自分类Dev

如何根据选择隐藏和显示 HTML 中的字段

来自分类Dev

如何禁用HTML表单中的“提交”按钮?

来自分类Dev

带有取消和提交按钮的Bootstrap模式弹出表单,无论单击哪个按钮提交表单

来自分类Dev

带有提交和重置按钮的AngularJS表单验证

来自分类Dev

带有提交和重置按钮的AngularJS表单验证

Related 相关文章

  1. 1

    HTML 表单 onsubmit 无法在某些带有隐藏提交按钮和只读输入的浏览器上触发

  2. 2

    如何在烧瓶中创建带有简单文本字段和提交按钮的搜索框?

  3. 3

    如何将响应放入带有 javascript 数组和按钮的 html 表单中以在表单字段中获取响应

  4. 4

    使用带有提交按钮和重置按钮的JavaScript计算表单中的两个字段

  5. 5

    使用带有提交按钮和重置按钮的JavaScript计算表单中的两个字段

  6. 6

    如何在表单中仅提交1个输入字段?

  7. 7

    单击html表单中的提交按钮时,如何在html和javascript中添加div面板?

  8. 8

    提交带有按钮的表单(HTML)

  9. 9

    带有按钮和html的Javascript新输入字段

  10. 10

    带有PHP的Angular JS,带有输入字段和提交按钮

  11. 11

    如何在JQM日期框输入字段中隐藏按钮?

  12. 12

    html / javascript如何在单击按钮时显示带有方法的用户输入?

  13. 13

    如何在登录表单上启用提交按钮和[输入]键提交操作?

  14. 14

    如何在登录表单上启用提交按钮和[输入]键提交操作?

  15. 15

    提交表单时如何获取隐藏输入字段的值?

  16. 16

    如何创建一个只有三个提交按钮的带有三个文本输入字段的表单

  17. 17

    如何区分单击提交按钮和单击输入以提交表单?

  18. 18

    如何禁用表单提交按钮,直到所有输入字段均已填写?ReactJS ES2015

  19. 19

    如何在HTML表单中创建美元金额输入字段?

  20. 20

    如何将HTML隐藏的表单字段提交到iPad iOS Safari和/或Chrome?

  21. 21

    如何在ViewPager中隐藏和显示带有片段的FloatingActionButton?

  22. 22

    如何在php中显示和隐藏带有会话的菜单

  23. 23

    如何在闪亮的提交按钮上隐藏表单?

  24. 24

    如何制作带有登录输入、输入区域和提交按钮的 tkinter 程序

  25. 25

    如何根据选择隐藏和显示 HTML 中的字段

  26. 26

    如何禁用HTML表单中的“提交”按钮?

  27. 27

    带有取消和提交按钮的Bootstrap模式弹出表单,无论单击哪个按钮提交表单

  28. 28

    带有提交和重置按钮的AngularJS表单验证

  29. 29

    带有提交和重置按钮的AngularJS表单验证

热门标签

归档