СИТУАЦИЯ
В моем гибридном приложении Cordova (создан на основе Quasar framework) мне нужно добавить функцию видеозвонка.
Мне нужно использовать функцию getUserMedia()
.
При тестировании на локальном хосте все работает нормально, но при тестировании на устройстве не работает.
ОШИБКА:
[Deprecation] getUserMedia() no longer works on insecure origins. To use this feature, you should consider switching your application to a secure origin, such as HTTPS.
Скорее всего, эта ошибка вызвана тем, что Cordova не работает по https.
ПОПЫТКИ:
Я перепробовал все, что могнайти в Google, но ничего не помогло ..
Пешеходный переход:
Я видел, как кто-то предлагал установить плагин crosswalk .Я пробовал, но ничего не изменилось.
Разрешения:
Я пытался запросить разрешение с помощью плагина android-permissions .
Но когда он запросил запрос, несмотря на нажатие кнопки ALLOW
, было установлено разрешение DENIED_ALWAYS
...
Я попытался использовать диагностику Плагин Cordova, но результат был тот же
ВОПРОС:
Как я могу использовать getUserMedia()
в приложении Cordova?
РЕДАКТИРОВАТЬ - РЕШЕНИЕ:
@ Андре решение является правильным решением вопроса.
Я получал эту ошибку при запуске приложения в среде разработчика на моем устройстве.Quasar запускает мой devServer на 192.168.0.18, который не совпадает с localhost, и поэтому не распознается как безопасный.
При установке https: true
в конфигурации эта проблема была решена.
ПослеПри создании приложения Cordova запускается на file: //, а на протоколе file: // нет небезопасной проблемы происхождения, как указал @jcesarmobile в комментариях.
У меня все еще были проблемы со сборкой,но не связанные с этой проблемой, а связанные с разрешениями, и мне удалось решить их с помощью плагина cordova-plugin-android-permissions
.