Невозможно получить куки для флаттера iOS. - PullRequest
0 голосов
/ 13 февраля 2019

Я получаю файлы cookie со страницы входа на веб-сайт, используя веб-просмотр с трепетом внутри моего виджета с отслеживанием состояния.Таким образом, после того, как пользователь войдет в систему и URL-адреса изменятся, будут получены файлы cookie.Сейчас я не могу получить куки, когда мое приложение находится в iOS.По умолчанию в Android запускается chrome webview, а в iOS, я думаю, запускается wkwebview или safari webview.

Я использую плагин flutter inappbrowser, в который встроен менеджер файлов cookie. Я попытался изменить пользовательский агент, но проблема все еще та же.

Плагин:

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

Я использую те же коды и могу получать файлы cookie в Android, но не в iOS

import 'package:flutter_inappbrowser/flutter_inappbrowser.dart';

MyInAppBrowser inAppBrowser = new MyInAppBrowser();  

class MainScreen extends State<MainScreen> {

  @override
  void initState() {
    _openWebView();
  }

  _openWebView() async{
     await inAppBrowser.open(url: "https://*****some 
      website*****/logon.php", options: {
      "javaScriptEnabled":true,
      "clearCache":true,
      "useShouldOverrideUrlLoading": true,
      "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) 
       AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77",
    });
  }
}

class MyInAppBrowser extends InAppBrowser {

   @override
   void onBrowserCreated() async {
      print("\n\nBrowser Ready!\n\n");
   }

   @override
   void onLoadStart(String url) async {
      CookieManager.getCookies(url).then((val) {
        debugPrint("COOKIEMANAGER: " + val.toString());
     });
   }

   @override
   void shouldOverrideUrlLoading(String url) {
      CookieManager.getCookies(url).then((val) {
        debugPrint("COOKIEMANAGER: " + val.toString());
      });

   }

   @override
   void onLoadError(String url, int code, String message) {
      print("\n\nCan't load $url.. Error: $message\n\n");
    }

    @override
    void onExit() {
        print("\n\nBrowser closed!\n\n");
    }

}

Я должен иметь возможность получать информацию о файлах cookie, такую ​​как идентификатор пользователя, сессионный хэш и т. Д.который показан на Android

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...