在WebView中的会话存储中设置多个数据项

发布于 2025-01-28 00:46:51 字数 689 浏览 1 评论 0原文

我需要帮助来设置flutter WebView的会话存储中的多个项目。 我正在使用此软件包 - WebView_flutter: ^3.0.1 => 在这里

我想打开一个URL,该URL将使用户能够采取进一步的操作在网站上已经存在的功能中。该网站的代码以访问会话存储的数据的方式编写 - >像auth令牌和用户ID一样。如果我无法在会话存储中提供此数据,那么网站将重定向到登录。

我尝试这样做 - >

          onWebViewCreated: (WebViewController webViewController) {
            _controller.complete(webViewController);
            webViewController.runJavascript(
                'sessionStorage.setItem("userCode", "000"); sessionStorage.setItem("role", "40");');
          },

I need help to set multiple items in session storage of the flutter webview.
I am using this package - webview_flutter: ^3.0.1 => here

I want to open a URL that will enable users to take further action in a functionality that is already present on a website. The website's code is written in a way that it accesses data from the session storage -> like auth token and user id and so on. If I am unable to provide this data in session storage then website will redirect to login.

I have tried doing this ->

          onWebViewCreated: (WebViewController webViewController) {
            _controller.complete(webViewController);
            webViewController.runJavascript(
                'sessionStorage.setItem("userCode", "000"); sessionStorage.setItem("role", "40");');
          },

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

夜光 2025-02-04 00:46:51

我想出了一种方法,但它不使用官方的Flutter WebView插件。

我使用了此插件-Flutter_InappWebView,

我能够设置本地存储和会话存储 - >

                  onLoadStart:
                      (InAppWebViewController controller, Uri? url) async {
                    await controller.evaluateJavascript(source: """
                window.localStorage.setItem("userCode", "${userDetails.userId}");
              """);

                    await controller.evaluateJavascript(source: """
              sessionStorage.setItem("userCode", "${userDetails.userId}");
              sessionStorage.setItem("Role", "${userDetails.role}");
              """);
                  },

I figured out a way but it does not use the official flutter webview plugin.

I used this plugin - flutter_inappwebview

I was able to set local storage and session storage both ->

                  onLoadStart:
                      (InAppWebViewController controller, Uri? url) async {
                    await controller.evaluateJavascript(source: """
                window.localStorage.setItem("userCode", "${userDetails.userId}");
              """);

                    await controller.evaluateJavascript(source: """
              sessionStorage.setItem("userCode", "${userDetails.userId}");
              sessionStorage.setItem("Role", "${userDetails.role}");
              """);
                  },
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文