More
Создание приложения на Flutter с интеграцией OverlayPortal и Back4app
15 мин
введение в этом учебном пособии мы научимся использовать overlayportal в flutter для создания динамических наложений для виджетов, таких как подсказки или меню кроме того, мы интегрируем back4app для хранения и управления данными пользователей, такими как предпочтения или действия, предпринятые при взаимодействии с наложением к концу этого учебного пособия вы сможете реализовать overlayportal в приложении flutter отображать интерактивные наложения, такие как плавающие меню или подсказки интегрировать back4app в качестве бэкенда для хранения данных, связанных с наложением (например, предпочтений пользователей или действий) предварительные требования среда flutter убедитесь, что у вас установлен flutter следуйте руководству по установке https //flutter dev/docs/get started/install учетная запись back4app зарегистрируйтесь на back4app https //www back4app com/ для использования в качестве вашего бэкенда базовые знания о виджетах flutter знакомство с общими виджетами flutter, такими как кнопки, контейнеры и наложения шаг 1 настройка back4app 1 1 создание проекта back4app войдите в свой аккаунт back4app https //www back4app com/ и создайте новый проект с именем overlaydemoapp создайте parse class с именем overlayactions с следующими полями имя пользователя (string) имя пользователя тип действия (string) действие, выполненное на наложении (например, "открыто", "закрыто", "нажато") временная метка (datetime) время, когда произошло действие 1 2 получите свои учетные данные back4app на панели управления back4app перейдите в настройки вашего проекта и получите свой id приложения и ключ клиента эти учетные данные будут использоваться для инициализации back4app в вашем приложении flutter шаг 2 настройка проекта flutter 2 1 создание нового проекта flutter откройте терминал и создайте новый проект flutter flutter create overlay portal app cd overlay portal app 2 2 добавление зависимостей откройте файл pubspec yaml и добавьте необходимые зависимости для parse sdk и overlayportal dependencies flutter sdk flutter parse server sdk flutter ^latest version overlay portal ^0 1 0 provider ^5 0 0 запустите flutter pub get для установки зависимостей 2 3 инициализация parse sdk в lib/main dart , инициализируйте parse sdk с вашими учетными данными back4app import 'package\ flutter/material dart'; import 'package\ parse server sdk flutter/parse server sdk flutter dart'; void main() async { widgetsflutterbinding ensureinitialized(); const keyapplicationid = 'your back4app app id'; const keyclientkey = 'your back4app client key'; const keyparseserverurl = 'https //parseapi back4app com'; await parse() initialize( keyapplicationid, keyparseserverurl, clientkey keyclientkey, autosendsessionid true, ); runapp(myapp()); } class myapp extends statelesswidget { @override widget build(buildcontext context) { return materialapp( title 'overlay portal demo', theme themedata(primaryswatch colors blue), home overlayscreen(), ); } } замените your back4app app id и your back4app client key на ваши учетные данные back4app шаг 3 реализация overlayportal в flutter 3 1 создайте виджет overlayscreen в lib/overlay screen dart , создайте основной виджет, где мы реализуем overlayportal import 'package\ flutter/material dart'; import 'package\ overlay portal/overlay portal dart'; import 'package\ parse server sdk flutter/parse server sdk flutter dart'; class overlayscreen extends statefulwidget { @override overlayscreenstate createstate() => overlayscreenstate(); } class overlayscreenstate extends state\<overlayscreen> { final overlayportalcontroller controller = overlayportalcontroller(); bool isoverlayvisible = false; future\<void> logaction(string actiontype) async { // log action to back4app final actionobject = parseobject('overlayactions') set('username', 'player1') // example user set('actiontype', actiontype) set('timestamp', datetime now()); await actionobject save(); } void toggleoverlay() { setstate(() { isoverlayvisible = ! isoverlayvisible; if ( isoverlayvisible) { logaction('opened'); } else { logaction('closed'); } }); controller toggle(); } @override widget build(buildcontext context) { return scaffold( appbar appbar( title text('overlay portal example'), ), body center( child column( mainaxisalignment mainaxisalignment center, children \[ elevatedbutton( onpressed toggleoverlay, child text( isoverlayvisible ? 'hide overlay' 'show overlay'), ), overlayportal( controller controller, overlaychildbuilder (context) => positioned( top 150, left 50, child material( elevation 5 0, borderradius borderradius circular(8), child container( padding edgeinsets all(16 0), color colors blueaccent, child column( mainaxissize mainaxissize min, children \[ text( 'this is an overlay!', style textstyle(color colors white), ), sizedbox(height 10), elevatedbutton( onpressed () { logaction('clicked'); scaffoldmessenger of(context) showsnackbar(snackbar( content text('overlay button clicked!'), )); }, child text('click me'), ), ], ), ), ), ), ), ], ), ), ); } } в этой реализации overlayportal включается и выключается нажатием кнопки взаимодействие пользователя (открытие, закрытие или нажатие) записывается в back4app с использованием метода logaction накладка содержит сообщение и кнопку, которая инициирует действие 3 2 создание пользовательского интерфейса пользовательский интерфейс содержит кнопку, которая переключает видимость наложения само наложение позиционируется с помощью виджета positioned когда наложение видно, на экране появляется плавающий блок с сообщением и кнопкой шаг 4 запуск приложения откройте терминал и запустите приложение с помощью нажмите кнопку показать наложение для переключения наложения когда наложение видно, нажмите кнопку внутри наложения все взаимодействия (открытие, закрытие и нажатие) будут записаны в back4app шаг 5 просмотр зарегистрированных действий в back4app чтобы проверить, что действия пользователя записываются перейдите на свою панель управления back4app перейдите к классу overlayactions вы должны увидеть записи действий (открыто, закрыто, нажато) с отметками времени шаг 6 настройка наложения вы можете дополнительно настроить наложение, выполнив следующие действия изменив положение наложения с помощью виджета positioned добавив более сложные виджеты, такие как формы или меню, в наложение стилизовав наложение с помощью различных цветов, границ и теней заключение в этом учебном пособии вы узнали, как реализовать overlayportal в приложении flutter для создания интерактивных наложений, которые можно включать и выключать кроме того, мы интегрировали back4app для регистрации взаимодействий пользователей с наложением, предоставляя надежный бэкенд для хранения данных и улучшения функциональности приложения эта настройка может быть использована для создания функционально насыщенных приложений, где взаимодействия пользователей с наложениями (например, подсказками, меню, всплывающими окнами) хранятся на бэкенде, предоставляя информацию о поведении пользователей или облегчая динамическую загрузку контента на основе данных в реальном времени для получения дополнительной информации документация flutter overlay portal https //pub dev/packages/overlay portal документация back4app https //www back4app com/docs