HTML Парсинг и флаттер - PullRequest
0 голосов
/ 05 мая 2020

Я работал над тем, чтобы мои сайты Joomla могли взаимодействовать с моими мобильными приложениями flutter. Один из моих партнеров смог написать компонент для этого процесса и автоматически после каждого сохранения обновлять firebase.

вот вопрос, который я задаю. Я могу получить код в своем приложении flutter из firebase, проанализировать HTML, как он отображается в консоли Android Studio, но он не будет печататься в текстовом виджете.

Я попытался добавить переменная после синтаксического анализа, но безрезультатно. Дайте мне знать, если у вас есть предложения или решения. В консоли печатается текст «интротекст» из firebase.

  body: StreamBuilder(
    stream: Firestore.instance.collection('com_content.article').snapshots(),
    builder: (context, snapshot) {
      if(!snapshot.hasData) return Text('Loading data..Please Wait..');
      get(snapshot.data.documents[0]['title'].toString());
      get(snapshot.data.documents[0]['introtext'].toString());
      var title = parse('title');
      var introtext = parse('introtext');
      return SingleChildScrollView(
        padding: EdgeInsets.fromLTRB(20.0, 20.0, 20.0, 20.0),
        child: Column(
          children: <Widget>[
            Text('Text: ${this.title}'),
            Text('Text: ${this.introtext}'),
          ],
        ),
      );
    },
  ) ,
);

}} ...

1 Ответ

0 голосов
/ 06 мая 2020

Ну, это заняло всего около 4 часов, но я понял это.

Преимущество этого в том, что MYSQL и функции Joomla CMS могут общаться с firebase. Каждый раз, когда статья сохраняется из внешнего или внутреннего интерфейса joomla, она автоматически обновляется в firebase.

Намного проще, чем использовать службу автоматизации, такую ​​как zapier, или написать тонну кода REST API.

Это делает следующее

  • Joomla отправляет MYSQL данные в firebase
  • firebase видит входящие и автоматически создает новый документ в коллекции
  • Приложение Flutter затем вызывает firebase с помощью StreamBuilder
  • Используя плагин flutter_ html и Html (), вводят снимок, который
    необходимо проанализировать
  • Запустить приложение и отображает без разметки

Код см. ниже

...

body: StreamBuilder(         Stream:Firestore.instance.collection('com_content.article').snapshots(),
    builder: (context, snapshot) {
      if(!snapshot.hasData) return Text('Loading data..Please Wait..');

      return SingleChildScrollView(
        child: Html(
          data: snapshot.data.documents[0]['introtext'].toString(),
          padding: EdgeInsets.all(20.0),
          onLinkTap: (url) {
            print("Opening $url...");
          },
        ),
      );
    },
  ),

...

...