我的颤振应用程序流程的工作方式如下:
Webview
全屏到特定的URL我正在使用这个Webview插件。示例代码显示它支持本地存储(它有一个withLocalStorage
选项),但没有说明如何使用它。
我试过:
FlutterWebviewPlugin
实例evalJavascript
在新创建的实例上设置本地存储。launch
,将withJavascript
、withLocalStorage
设置为true
并将其启动到URL;
//1 final flutterWebviewPlugin =新FlutterWebviewPlugin();//2 FlutterWebviewPlugin‘SOMETOKEN’);//3 flutterWebviewPlugin.launch( https://SOMEURL",withLocalStorage: true,withJavascript: true);如果我正确地设置了本地存储,Webview
将显示帐户页面;否则将显示一个登录页面(这就是所发生的)。
我还注意到evalJavascript
调用似乎不起作用。另外,更改步骤2和步骤3的顺序不会改变任何事情。
请注意,我知道这个问题。所提供的答案也没有显示如何设置本地存储空间,也没有显示Webview
全屏,因此不会解决我的问题。
发布于 2019-04-24 07:19:19
在步骤2中,代码在空的about:blank
页面中进行计算。因此,保存的属性分配给about:blank
地址,而不是SOMEURL
地址。只在Future
返回的.launch(...)
完成后才尝试计算#2。
例如:
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");
});
https://stackoverflow.com/questions/50960945
复制相似问题