首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何设置本地存储

如何设置本地存储
EN

Stack Overflow用户
提问于 2020-04-26 21:35:29
回答 1查看 1.3K关注 0票数 0

我的颤振应用程序流程的工作方式如下:

用户登录1-如果登录成功,服务器返回一个令牌2集令牌到本地存储在webview 3-打开Webview全屏到一个特定的URL我正在使用这个Webview插件。示例代码显示它支持本地存储(它有一个withLocalStorage选项),但没有说明如何使用它。

我知道这个question1 question2

如果我正确设置本地存储空间,Webview将显示帐户页面;否则登录页面(这不是发生的情况) Instade将得到此错误

I/ or (13409):INFO:控制台(1)“未登录SyntaxError:无效或意外令牌”,源:(1)

我的代码:

代码语言:javascript
复制
    void webwiew(token) {
    flutterWebViewPlugin
        .launch(
      "URLExpml",
      withLocalStorage: true,
      withJavascript: true,
    )
        .whenComplete(() {
  final res = flutterWebViewPlugin.evalJavascript("(function() { try { window.localStorage.setItem('token', $token); } catch (err) { return err; } })();");

  print("Eval result webview : ${res.toString()}");
}); 
  }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-27 02:19:23

来自https://github.com/fluttercommunity/flutter_webview_plugin/pull/51#issuecomment-399468804

您可以等到第一个页面加载完成,然后使用evalJavascript访问evalJavascript

要实现这一点,您可以使用onStateChanged.listen并检查state.type == WebViewState.finishLoad

代码语言:javascript
复制
StreamSubscription<WebViewStateChanged> _onStateChanged;
_onStateChanged = flutterWebviewPlugin.onStateChanged.listen((WebViewStateChanged state) {
  if (mounted) {
    if (state.type == WebViewState.finishLoad) {
      flutterWebviewPlugin.evalJavascript(
          "window.localStorage.setItem('LOCAL_STORAGE','SOMETOKEN');" +
              "document.getElementById('showLocalStorageBtn').click();"
      );
    }
  }
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61448425

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档