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

如何设置本地存储
EN

Stack Overflow用户
提问于 2018-06-21 05:26:21
回答 1查看 7.3K关注 0票数 1

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

  1. 用户登录
  2. 如果成功登录,服务器将返回一个令牌。
  3. 将令牌设置为webview中的本地存储
  4. 打开Webview 全屏到特定的URL

我正在使用这个Webview插件。示例代码显示它支持本地存储(它有一个withLocalStorage选项),但没有说明如何使用它。

我试过:

  1. 创建新的FlutterWebviewPlugin实例
  2. 通过调用方法evalJavascript在新创建的实例上设置本地存储。
  3. 在实例上调用launch,将withJavascriptwithLocalStorage设置为true并将其启动到URL; //1 final flutterWebviewPlugin =新FlutterWebviewPlugin();//2 FlutterWebviewPlugin‘SOMETOKEN’);//3 flutterWebviewPlugin.launch( https://SOMEURL",withLocalStorage: true,withJavascript: true);

如果我正确地设置了本地存储,Webview将显示帐户页面;否则将显示一个登录页面(这就是所发生的)。

我还注意到evalJavascript调用似乎不起作用。另外,更改步骤2和步骤3的顺序不会改变任何事情。

请注意,我知道这个问题。所提供的答案也没有显示如何设置本地存储空间,也没有显示Webview全屏,因此不会解决我的问题。

EN

回答 1

Stack Overflow用户

发布于 2019-04-24 07:19:19

在步骤2中,代码在空的about:blank页面中进行计算。因此,保存的属性分配给about:blank地址,而不是SOMEURL地址。只在Future返回的.launch(...)完成后才尝试计算#2。

例如:

代码语言:javascript
运行
复制
flutterWebviewPlugin.launch("https://SOMEURL",
  withLocalStorage: true,
  withJavascript: true
).whenComplete(() {
  final res = flutterWebviewPlugin.evalJavascript("(function() { try { window.localStorage.setItem('token', 'SOMETOKEN'); } catch (err) { return err; } })();");
  // Wrapped `setItem` into a func that would return some helpful info in case it throws.
  print("Eval result: $res");
});   
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50960945

复制
相关文章

相似问题

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