В Android-браузере Google Chrome, как установить unsafely-treat-insecure-origin-as-secure
Я использую getUserMedia()
в своем веб-приложении, которое отлично работает, когда я тестирую свое приложение на localhost. Но если я рассматриваю свой ноутбук как сервер и запускаю приложение в браузере Google Chrome моего телефона Android, он дает мне ошибку:
getUserMedia() больше не работает с небезопасным происхождением. Чтобы использовать это функции, вы должны рассмотреть возможность переключения приложения на безопасное источника, такого как HTTPS. Подробнее см. https://goo.gl/rStTGz.
Когда я проверил [https://goo.gl/rStTGz][1], я узнал, что getUserMedia()
устарел на ненадежном происхождении. Написано, что для режима разработки
Вы можете запустить хром с помощью --unsafely-treat-insecure-origin-as-secure = "example.com" (заменяя "example.com" исходным кодом, которое вы действительно хотите проверить)
Как и где я могу установить этот флаг? Есть ли другая альтернатива?
Ответы
Ответ 1
Переместите localhost
на устройство
Один из способов - запустить HTTP-сервер на Android-устройстве. Консенсус в ответах на этот вопрос заключается в том, что стоит NanoHTTPD. Если вы хотите готовое приложение, веб-поиск http server for android
включил Simple HTTP Server в Google Play Store. После копирования клиентской части вашего веб-приложения на устройство и запуска сервера вы сможете открыть http://localhost:12345
в Chrome для Android.
Или сделайте ваш тестовый сервер безопасным
Вы можете протестировать защищенные контекстно-зависимые функции, не используя --unsafely-treat-insecure-origin-as-secure
, превратив существующий тестовый сервер в потенциально надежное происхождение. Выполните следующие действия:
- Если вы еще не являетесь владельцем домена в регистраторе который связывает хостинг DNS, совместимый с клиентом
dehydrated
ACME, зарегистрируйте его. Это берет плату, которая повторяется до тех пор, пока вы держите домен активным.
- Укажите субдомен на внутреннем IP-адресе тестового веб-сервера. Он не может быть доступен из Интернета.
- Настройте тестовый веб-сервер для ответа на HTTPS на порт 443 этого субдомена, используя
NameVirtualHost
или тому подобное.
- Используйте
dehydrated
клиент ACME с соответствующим крюком dns-01
для вашего хоста DNS, чтобы получить сертификат от Let Encrypt for your тестовый веб-сервер.
- Установите этот сертификат на свой тестовый веб-сервер.
Ответ 2
Я столкнулся с этой проблемой, но в Chromium, Ubuntu. Я решил проблему с запуском этой команды в консоли:
chromium-browser --unsafely-treat-insecure-origin-as-secure="http://localhost.dev:3000" --user-data-dir=~/.config/chromium/Profile 1
где localhost.dev:3000 - ваш сайт.
Для других систем информация:
где находится каталог данных
как запустить хром и установить ключи
Краткая информация о флаге --unsafely-treat-insecure-origin-as-secure
:
Лечить данное (небезопасное) происхождение как безопасное происхождение. Многократное происхождение может поставляться. Не имеет эффекта, если также предоставляется -user-data-dir. Пример:
--unsafely-treat-insecure-origin-as-secure=http://a.test,http://b.test --user-data-dir=/test/only/profile/dir
Я не проверял, но для android вы, возможно, можете также установить флаги на странице chrome://flags.