Обрабатывать онлайн / офлайн, отображая различные страницы (веб-просмотр)? - PullRequest
0 голосов
/ 13 февраля 2020

Я сделал приложение, используя Flutter и flutter_webview_plugin и flutter_offline (плагин). Результат, который я ищу, - это отображение экрана загрузки при открытии приложения, затем отображение онлайн-страницы (если она подключена), если нет, отображение 404 автономных страниц. Это должно происходить каждый раз, когда меняется соединение.

И я подумал, что решил это, потому что оно работает без сбоев на Android. Но на iOS он просто показывает Loading... Не имеет значения, если он в сети или в автономном режиме.

Так что я думаю, что у меня есть некоторые проблемы с if и else, которые iOS не делает 'Т понять? Поскольку он переходит непосредственно к WebviewScaffold и никогда не делает fwp.reloadUrl при обнаружении состояния соединения.

Можно ли переписать этот код, чтобы iOS также его понимал?

Спасибо !

return new Scaffold(
  body: OfflineBuilder(
    connectivityBuilder: (
        BuildContext context,
        ConnectivityResult connectivity,
        Widget child,
        ) {

      final bool connected = connectivity != ConnectivityResult.none;

      if (connected == true) { // Show link-page or URL from database
        fwp.reloadUrl(urlToLoad);
      }
      else { // Offline 404
        fwp.reloadUrl(Uri.dataFromString('<html><body>404</body></html>', mimeType: 'text/html').toString());
      }
      // Loading dots
      return WebviewScaffold(
        url: Uri.dataFromString('<html><body>Loading...</body></html>', mimeType: 'text/html').toString(),
        withJavascript: true,
        useWideViewPort: false,
        withZoom: false,
        scrollBar: false
      );

    },
    child: Column(
    ),
  ),
);
...