Чего я хочу достичь: допустим, у меня есть пользователь, прошедший аутентификацию Api (токен), и затем, как только этот пользователь нажмет кнопку, я хотел открыть веб-просмотр и аутентифицировать его при аутентификации на основе сеанса.
То, что я делал до сих пор (множество решений и предложений):
использование url_launcher
:
- открыть браузер при нажатии
launch(url)
- отправить токен (GET params) на внутренний сервер
- аутентифицировать пользователя и перенаправить обратно Работает хорошо, НО плохой Ux, пользователь должен идтимежду браузером и приложением!
использовать 1 flutter_webview_plugin
или 2 webview_flutter
:
открыть веб-просмотр по клику 1
class __WebWidget extends StatelessWidget {
@override
Widget build(BuildContext context) {
return WebviewScaffold(
url: url + "?token=${userManager.token}",
appBar: new AppBar(
title: Text('Space'),
),
withZoom: true,
withLocalStorage: true,
hidden: true,
initialChild: Container(
color: Colors.blueAccent,
child: const Center(
child: Text('Loading....'),
),
),
);
}
}
2
class WebWidget extends StatelessWidget {
WebWidget({this.url});
final String url;
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Votre Espace '),
),
body: WebView(
initialUrl: url + "?token=${userManager.token}",
javascriptMode: JavascriptMode.unrestricted,
),
);
}
}
```
отправить токен (параметры GET) на внутренний сервер
- аутентифицировать пользователя и перенаправитьназад не работает!
Я подозревал, что веб-просмотр не поддерживает куки!
В бэкэнде я использую laravel (php7) и сервер Apache.
заранее спасибо