go_router:从浏览器深度链接到应用程序不会激活路由器

问题描述 投票:0回答:0

我的应用程序打开一个浏览器供用户登录。后端应用程序然后发出重定向到深层链接。

我的路线文件有这个:

      GoRoute(
        path: '/login/:token',
        builder: (context, state) {
          final token = state.params['token'];
          if(token != null) {
            setLoginToken(token);
          }
          return Home();
        },

routes 文件在启动时被调用,因此路由器正在工作。

我的 Info.plist 有:

    <key>FlutterDeepLinkingEnabled</key>
    <true/>
    <key>CFBundleURLTypes</key>
    <array>
        <dict>
            <key>CFBundleTypeRole</key>
            <string>Editor</string>
            <key>CFBundleURLName</key>
            <string>mydomain</string>
            <key>CFBundleURLSchemes</key>
            <array>
            <string>my_invented_scheme</string>
            </array>
        </dict>
    </array>

后端正在重定向到

my_invented_scheme://mydomain/login/eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxNjUiLCJzY3AiOiJ1c2VyIiwiYXV…

浏览器询问是否应该打开我的应用程序。我点击确定。

然后……什么也没发生。我的应用程序出现在最前面,但根本没有调用路由器。所以当浏览器在前面时,我的应用程序停留在我显示的微调器上。

请指教!

flutter deep-linking flutter-go-router
© www.soinside.com 2019 - 2024. All rights reserved.