Как добавить плагин в флаттер?

Я хочу добавить любой плагин в свой веб-проект, но после добавления плагина я получаю сообщение об ошибке. Я запустил Flutter Pub, он дал мне код 0. Но когда я пытаюсь:

import 'package:font_awesome_flutter/font_awesome_flutter.dart';

Там написано, что пакет не найден.

pubspec.yaml

environment:
  # You must be using Flutter >=1.5.0 or Dart >=2.3.0
  sdk: '>=2.3.0 <3.0.0'

dependencies:
  flutter_web: any
  flutter_web_ui: any

dev_dependencies:
  build_daemon: ^2.0.0
  build_runner: ^1.6.6
  build_web_compilers: ^2.1.0
  pedantic: ^1.7.0

dependency_overrides:
  flutter_web:
    git:
      url: https://github.com/flutter/flutter_web
      path: packages/flutter_web
  flutter_web_ui:
    git:
      url: https://github.com/flutter/flutter_web
      path: packages/flutter_web_ui

2 ответа

Вы не добавили font_awesome_flutter плагин еще. Он должен быть в вашем файле pubspec.yaml следующим образом:

environment:
  # You must be using Flutter >=1.5.0 or Dart >=2.3.0
  sdk: '>=2.3.0 <3.0.0'

dependencies:
  flutter_web: any
  flutter_web_ui: any
  font_awesome_flutter: ^8.5.0

dev_dependencies:
  build_daemon: ^2.0.0
  build_runner: ^1.6.6
  build_web_compilers: ^2.1.0
  pedantic: ^1.7.0

dependency_overrides:
  flutter_web:
    git:
      url: https://github.com/flutter/flutter_web
      path: packages/flutter_web
  flutter_web_ui:
    git:
      url: https://github.com/flutter/flutter_web
      path: packages/flutter_web_ui

К сожалению, даже если бы он был у вас там, он все равно не работал бы как font_awesome_flutter плагин даже не поддерживается для Flutter Web. См. Пример custom_fonts в репозитории Flutter Web для примера того, как добавить пользовательские шрифты в Flutter Web.

В этом конкретном портфолио я не уверен, использовал ли он какой-нибудь замечательный плагин. Вы можете проверить его код здесь. https://github.com/iampawan/myportfolio

Вместо этого проверьте это руководство по миграции, чтобы увидеть, выполнили ли вы эти шаги, упомянутые в этих разделах.

Кроме того, чтобы использовать новый плагин, это то, что я следую в своем проекте. Например, это то, как я использую пакет graphql-2.1.0 в своем проекте.

  1. Я иду на страницу версии пакета флаттера. В этом случае здесь.
  2. Скачайте последнюю версию и распакуйте ее в папку в моем проекте. например

    • $project_dir\ пакеты

    • вдоль стороны - $project_dir\lib, $project_dir\web

  3. Замените все операции импорта внутри $project_dir\packages\font-awesome-folder\lib на

    • package:flutter to package:flutter_web

    • dart:ui to package:flutter_web_ui/ui.dart

  4. редактировать$project_dir\packages\font-awesome-folder\pubspec.yamlиспользовать SDK flutter_web, как определено в руководстве по миграции.

  5. Наконец сделатьflutter pub getа такжеpub get

Конечно, при таком подходе мы теряем устаревшие версии. Также, если font-awesome зависит от чего-то другого, мы должны сделать то же самое для него. Но пока я считаю, что это работает для меня.

Вы можете проверить, как портированный пакет kevmoo для провайдера будет использоваться в этом разделе.

Pubspec.yaml

  flutter_web_ui:
    git:
      url: https://github.com/flutter/flutter_web
      path: packages/flutter_web_ui

сборка виджета

ui.platformViewRegistry.registerViewFactory("my_div_", (int viewId) {
  DivElement element = DivElement()
    ..id = "reader"
    ..innerHtml = "Hello World";
  return element;
});

Строительные леса

import 'dart:ui' as ui;

Column(children:[ HtmlElementView(viewType: 'my_div')])
Другие вопросы по тегам