В 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.