#flutter #webview
#флаттер #веб-просмотр #webview
Вопрос:
Я использую flutter_webview_plugin: ^ 0.3.11
Это мой код
Сборка виджета (контекст BuildContext){
вернуть WebviewScaffold(
url: glbPhotoURL,
С помощью JavaScript: true,
Полоса прокрутки: верно,
С увеличением: верно)
url: glbPhotoURL => здесь glbPhotoURL — это URL, который я передаю, когда я использую любой обычный URL, он работает нормально (напримерhttp://www.google.com , http://youtube.com » Даже URL, подобный …https://youtu.be/o5UPfG1eIw4 работает нормально
Но когда я использую любой URL-адрес Google Photo (короткий URL), он выдает ошибку net::ERR_UNKNOWN_URL_SCHEME, например —https://photos.app.goo.gl/FkQenAD8kQQc4TSr6
Если я использую расширенный URL-адрес, он показывает изображения -https://photos.google.com/share/AF1QipNItZG3Cg_hn9__2QnuVh3nNMbRuGxQaQSWZ76qni7L7h0ORbauolcH3AKe0MOnEA? ключ = emc1Mk1CenRJRjloMjV5V1AzcmczNUprcGFsbmR3
Пожалуйста, помогите мне решить проблему, на данный момент я запускаю ее на физическом устройстве Android.
Комментарии:
1. URL: photos.app.goo.gl/FkQenAD8kQQc4TSr6 E / chromium(13502): [ERROR:web_contents_delegate.cc (218)] WebContentsDelegate::CheckMediaAccessPermission: не поддерживается. E/хром (13502): [ERROR:web_contents_delegate.cc (218)] WebContentsDelegate::CheckMediaAccessPermission: Не поддерживается. W/cr_media(13502): Требуется MODIFY_AUDIO_SETTINGS и RECORD_AUDIO. Ни одно аудиоустройство не будет доступно для записи, чтобы быть в безопасности — я предоставил следующие разрешения в Android Manifest (Интернет, Камера, Запись звука, изменение настроек звука, захват видео и захват аудио
2. Хорошо — я решил это на уровне сервера — это обходной путь — я создал API на сервере, который принимает URL-адрес — в свою очередь, он генерирует URL обратного вызова — и этот URL я сохраняю в базе данных — которую теперь я вызываю из приложения flutter, и она работает как шарм 🙂
Ответ №1:
В Google Фото используются динамические ссылки Firebase. Я предлагаю запустить ссылку извне. Я сталкивался с подобной ошибкой на Android раньше, когда динамические ссылки Firebase принудительно загружались в WebView. Ожидается, что FDLS будут обрабатываться службами Google Play в Android. Но поскольку WebView не знает, что делать со ссылкой, которую он принудительно отображает, WebView возвращает ошибку «net::ERR_UNKNOWN_URL_SCHEME».
Откройте ссылку извне с помощью url_launcher
. Используйте регулярное выражение для фильтрации URL-адресов намерений и проверьте, может ли URL-адрес быть запущен и обрабатываться извне (вне приложения).
var yourURL = "URL goes here";
// Check if URL contains Google Photos URL
yourURL.contains(RegExp('^https://photos.app.goo.gl/.*$')){
// Check if the URL can be launched
if (await canLaunch(yourURL)) {
await launch(yourURL);
} else {
print('Could not launch $yourURL');
}
}