【发布时间】:2019-03-06 13:35:35
【问题描述】:
情况
在我的 Cordova 混合应用程序(使用 Quasar 框架构建)中,我需要添加视频通话功能。
我需要使用函数getUserMedia()。
在 localhost 上测试时一切正常,但在设备上测试时就不行了。
错误:
[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...
我尝试过使用diagnosticcordova 插件,但结果是一样的
问题:
如何在 cordova 应用中使用 getUserMedia()?
编辑 - 解决方案:
@Andre 解决方案是问题的正确解决方案。
我在设备的开发环境中运行应用程序时遇到了该错误。 Quasar 在 192.168.0.18 上运行我的 devServer,这与 localhost 不同,因此不被认为是安全的。
通过在配置中设置https: true,该问题得到解决。
在构建应用程序后,Cordova 在 file:// 上运行,并且在 file:// 协议上没有不安全的来源问题,正如 cmets 中的 @jcesarmobile 所指出的那样。
我在构建时仍然遇到问题,但与此问题本身无关,但涉及权限,我设法使用 cordova-plugin-android-permissions 插件解决了这些问题。
【问题讨论】:
-
cordova 使用 file:// 加载应用程序,应该仍然可以工作。那么,您的应用网址是什么样的?那么应该是一些类星体问题
-
是的,应用程序在 file:// 上提供 - 这是完整路径:file:///android_asset/www/index.html#/Home
-
奇怪,它应该通过文件协议工作。您可以尝试使用 cordova-plugin-ionic-webview,它可以配置为通过 https 服务
-
谢谢@jcesarmobile,你是对的。在 file:// 协议上没有不安全的问题。我仍然有问题,但由于权限设置不正确。
标签: javascript android cordova getusermedia quasar-framework