【问题标题】:Navigate to InApp screen from webview in flutter在颤动中从 webview 导航到 InApp 屏幕
【发布时间】:2021-03-06 20:47:58
【问题描述】:

我有一个颤振应用程序,它有一个网络视图并浏览一个特定的 URL。 web-view 有表单,当它被填写并提交时,web-view 会根据用户填写的表单重定向到结果 URL。

我正在使用:用于 webviews 的 InAppWebView 插件。

当我的重定向 url 被点击时,我想导航到我的 DashboardScreen。我无法浏览此屏幕。请帮忙。

以下是我的构建方法:

Widget build(BuildContext context) {
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      home: Scaffold(
        appBar: AppBar(
          title: Text("MyApp"),
        ),
        body: InAppWebView(
          initialUrl: "myURL",
          onWebViewCreated: (InAppWebViewController controller) {
            _webViewController = controller;
          },
          onLoadStop: (InAppWebViewController controller, String url) async {
            if (url.startsWith("redirectURL")) {
              // get your token from url
              Navigator.pop(context);
              Navigator.pushReplacement(context,
                  MaterialPageRoute(builder: (context) => DashboardScreen()));
            }
          },
        ),
      ),
    );
  }

【问题讨论】:

  • 你到底卡在哪里了?
  • 我无法从 webview 导航到下一个屏幕。

标签: flutter webview


【解决方案1】:

这是一个上下文问题。此外,您不必删除替换路线。使用下面的工作代码将解决问题。

final scaffoldKey = GlobalKey<ScaffoldState>();
@override
Widget build(BuildContext context) {
return MaterialApp(
  debugShowCheckedModeBanner: false,
  home: Scaffold(
    key: scaffoldKey,
    appBar: AppBar(
      title: Text("MyApp"),
    ),
    body: InAppWebView(
      initialUrl: "https://www.google.com.pk/",
      onWebViewCreated: (InAppWebViewController controller) {},
      onLoadStop: (InAppWebViewController controller, String url) async {
        if (url.contains("youtube")) {
          // get your token from url
          // Navigator.pop(scaffoldKey.currentContext); // No need of this 
  line
          Navigator.pushReplacement(scaffoldKey.currentContext,
              MaterialPageRoute(builder: (context) => DD()));
        }
      },
    ),
  ),
 );
}

【讨论】:

    猜你喜欢
    • 2020-02-08
    • 1970-01-01
    • 2021-03-28
    • 2020-10-10
    • 2021-09-18
    • 1970-01-01
    • 2020-05-24
    • 2021-03-24
    • 1970-01-01
    相关资源
    最近更新 更多