simple_native_web_view_browser 0.5.0
simple_native_web_view_browser: ^0.5.0 copied to clipboard
Простой полноэкранный нативный браузер на основе WebView
0.5.0 #
- Новый параметр запроса
isSharingAvailable: стандартная кнопка «Поделиться» на верхней панели справа от заголовка/адресной строки. Кнопка открывает системный шеринг и передаёт ему адрес текущей страницы браузера. На iPad поповер шеринга привязывается к кнопке (якорь). Настройка применяется при повторном открытии браузера (reopen-политика). - Исправление (iOS): кнопка «Поделиться» не реагировала на нажатия — слот панели имел нулевую высоту, и hit-testing не находил кнопку.
0.4.1 #
- Документация: инструкция подключения обновлена на pub.flutter-io.cn (^0.4.0), убран раздел «Запуск тестов».
0.4.0 #
- Плагин переведён на единую структуру пакета: нативные реализации
iOS и Android перенесены в основной пакет (вместо federated-подпакетов
simple_native_web_view_browser_ios/_android). Публичный API не изменился. - Подготовка к публикации на pub.flutter-io.cn: убран
publish_to: none, добавленыhomepage,repository,topics.
0.3.1 #
- iOS: исправлена проверка успешности презентации браузера
(isBeingPresented → presentingViewController) — устранены ложный
present_failedи срыв флоу аутентификации (события не доставлялись открытой сессии).
0.3.0 #
- Новый обработчик
onDownloadStart(поле запроса): сообщает адрес файла, когда пользователь пытается скачать файл. Загрузка не функция браузера: переход на файл отменяется, скачивание выполняет приложение. - Android: перехват через DownloadListener; iOS: WKDownload (14.5+) и эвристика по MIME-типу главного кадра (13–14.4).
0.2.2 #
- Гарантия onClosed: если нативное событие о закрытии потеряно (детaч движка и т.п.), сессия принудительно закрывается по таймауту, колбэк вызывается, состояние активной сессии очищается.
- Android: при детаче движка с открытым браузером Activity завершается.
0.2.1 #
- Безопасность: нативная валидация кук на обеих платформах (защита от инъекции атрибутов при прямом вызове канала), валидация userAgent (запрет CR/LF), явный запрет mixed content (Android).
- Исправления:
reloadWithCookiesприменяет куки к текущему адресу страницы (а не к стартовому), игнорирование отмены навигации на iOS (ложный onLoadError), защита от краша при обращении к уничтоженному WebView (Android), сброс веб-инспектора при повторном открытии без отладки (Android), исключения пользовательских колбэков не рвут маршрутизацию событий, унификация ошибки reloadWithCookies без аргументов. - Передача initialCookies в Intent JSON-строкой (вместо устаревшего getSerializable), launchMode singleTask для BrowserActivity.
- Внимание: конструктор
SimpleBrowserOpenRequestтеперь валидирует userAgent и не является const.
0.2.0 #
- Новые параметры запроса:
enableCookiesAndroid(только Android: отключение приёма кук, восстанавливается при закрытии браузера) иallowFileAccess(загрузкаfile://, по умолчанию выключена на обеих платформах). - Безопасность: валидация кук (запрет «;», «,» и управляющих символов),
блокировка
file://по умолчанию, жёсткие настройки файлового доступа WebView (Android), единственная доставка onSchemeRedirect за сеанс (Android), onLoadError только для главного кадра (Android), сброс веб-инспектора при повторном открытии без отладки (iOS), игнорирование enableDebugging в release-сборках. - Исправления: ложный onClosed при смене темы Android (uiMode в configChanges), зависание open() при неудачной презентации (iOS).
- Внимание: конструктор
SimpleBrowserCookieтеперь валидирует значения и не является const.