Start Debugging

flutter-web

7 статей

Как вызывать OpenAI API из Flutter web-приложения, не раскрывая API-ключ

Всё, что вы компилируете в сборку Flutter web, включая значения --dart-define, попадает в браузер открытым текстом. Единственный безопасный вариант: небольшой backend-прокси, который хранит ключ, аутентифицирует пользователя, фиксирует модель и передаёт обратно SSE-поток Responses API. Полный прокси на Dart shelf и клиент Flutter, проверено на Flutter 3.44, Dart 3.12 и http 1.6.

CanvasKit или skwasm для Flutter web в 2026 году: какой рендерер выпускать?

Выпускайте skwasm через flutter build web --wasm, если ваши зависимости компилируются в Wasm: он загружает меньше и на тяжёлой сцене отрисовал на 36% больше кадров, чем CanvasKit. На Flutter 3.47.x оставайтесь в однопоточном режиме, пока исправление падения многопоточного режима на тексте не выйдет из beta.

Исправление: Text во Flutter рисуется за пределами экрана в Android WebView при включённом системном масштабе шрифта

Flutter web с 3.41 по 3.44 сообщает о переопределении высоты строки примерно в 625 раз, когда textZoom в Android WebView не равен 100. Обновитесь до 3.47 или сбросьте переопределение в MaterialApp.builder.

Исправление: Flutter web отдаёт устаревшую закешированную сборку после перезагрузки вкладки браузера

Перезагрузка перепроверяет только index.html, поэтому main.dart.js без хеша в имени продолжает браться из кеша браузера. Отдавайте результат сборки Flutter с Cache-Control: no-cache, проставляйте build id там, где заголовки задать нельзя, и позвольте самоочищающемуся service worker убрать кеши версий до 3.41.

Миграция веб-приложения на Flutter с dart:html на package:web и dart:js_interop

Пошаговая миграция с устаревших dart:html, dart:js_util и package:js на package:web 1.1.1 и dart:js_interop: как найти каждый проблемный импорт с помощью компилятора dart2wasm, что переименовывает dart fix, а что нет, ловушки JSImmutableListWrapper и innerHTML, и как проверить результат через flutter build web --wasm.

Как собрать веб-приложение Flutter с WebAssembly через flutter build web --wasm

Полное руководство по публикации веб-приложения Flutter, скомпилированного в WebAssembly, на Flutter 3.44: как выглядят две выпускаемые сборки, почему Firefox и Safari по-прежнему получают JavaScript из-за wasmAllowList в загрузчике, миграция с dart:html для dart2wasm, заголовки COOP/COEP, определяющие, работает ли skwasm в несколько потоков, и как в среде выполнения доказать, какую сборку реально загрузил браузер.