无法获取用于Flutter iOS Webview的cookie

时间:2019-02-13 14:12:27

标签: cookies webview dart flutter wkwebview

我正在使用有状态窗口小部件内的flutter webview从网站的登录页面获取cookie。因此,在用户登录后,URL更改后,将提取cookie。现在,当我的应用程序在iOS中时,我无法提取Cookie。我认为,在android中,默认情况下会启动chrome webview,而在iOS中会启动wkwebview或safari webview。

我使用的是内置有Cookie管理器的flutter inappbrowser插件。我尝试更改用户代理,但仍然遇到同样的问题。

插件:

https://pub.dartlang.org/packages/flutter_inappbrowser

我使用相同的代码,我可以在Android中获取Cookie,但不能在iOS中获取

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<body>
  <form>
    Price:<br>
    <input type="number" 
      name="price" 
      id="price" 
      class="form-control" 
      min="0" 
      required />
  </form> 
</body>

我应该能够获取Cookie信息,例如在Android上显示的userid,sessionhash等

1 个答案:

答案 0 :(得分:0)

您正在使用的插件(flutter_inappbrowser)似乎已过时,并且已停产。我建议使用webview_flutter,因为它支持此功能,并且最近才退出开发人员预览。

要使用webview_flutter获取Cookie,可以调用WebViewController.evaluateJavascript('document.cookie');。方法evaluateJavascript用于评估页面的JavaScript表达式'document.cookie'并返回String值。您可以检查sample in this page进行尝试。