Flutter-web Webview использует множественное управление LocalStorage - PullRequest
0 голосов
/ 21 июня 2020

Здравствуйте, у меня проблема с использованием Webviews в моем случае использования Webapp: Dashboard, которая загружает несколько Webviews, где каждое Webview с каждым локальным хранилищем объединяется с основным локальным хранилищем.

первая проблема: Мне пришлось использовать пакет easywebview для решения моих проблем с загрузкой веб-просмотров для веб-просмотра на chrome, но я хотел бы использовать пакет веб-просмотра.

вторая проблема: Когда я использовал свое приложение chrome с загрузкой easywebview внутри, у меня было два локальных хранилища, работающих независимо с sh, и я могу объединить все мои локальные хранилища в одном на панели инструментов.

пример кода

import 'package:easy_web_view/easy_web_view.dart';
class LoginFrameWidget extends StatelessWidget {

  @override
  Widget build(BuildContext context) {
    return Container(
        height: double.infinity,
        width: double.infinity,
        child: EasyWebView(
          src: "http://localhost:5111/",
          isHtml: false,
          isMarkdown: false,
          convertToWidgets: false,
          onLoaded: () {},
        ));
  }
}

Изображение локальных хранилищ: локальных хранилищ

Требуется решение: сделать одно основное хранилище LocalStorage, используя веб-просмотр вместо easywebview (если возможно)

1 Ответ

1 голос
/ 30 июня 2020

после некоторых исследований я пришел к другим решениям:

 //setup iframe
_iframeElement.height = '500';
_iframeElement.width = '500';
//listen to iframe (window.post.message)
window.onMessage.listen((event) {
  print(event.data);
  //some localstorage logic
});
_iframeElement.src = 'path';
_iframeElement.style.border = 'none';

// ignore: undefined_prefixed_name
ui.platformViewRegistry.registerViewFactory(
  'iframeElement',
  (int viewId) => _iframeElement,
);

_iframeWidget = HtmlElementView(
  key: UniqueKey(),
  viewType: 'iframeElement',
);

, а затем я просто передал собранные данные по запросам если есть лучшее решение, я бы послушал его.

...