如何在带有人行横道的离子项目上允许 getUserMedia
Posted
技术标签:
【中文标题】如何在带有人行横道的离子项目上允许 getUserMedia【英文标题】:How to allow getUserMedia on a ionic project with crosswalk 【发布时间】:2015-07-02 13:37:23 【问题描述】:当我使用人行横道运行我的 ionic 应用程序并尝试通过 getUserMedia api 打开相机时。我收到 PermissionDenied 错误
如何允许访问相机?
【问题讨论】:
【参考方案1】:我设法解决了以下问题:
1º 只需使用纯科尔多瓦,无需离子或 CCA。
2º添加人行横道插件:
cordova 插件添加 cordova-plugin-crosswalk-webview
存储库页面:https://github.com/crosswalk-project/cordova-plugin-crosswalk-webview
3º并在androidManifest.xml中添加一行:
查看更多权限: https://crosswalk-project.org/documentation/manifest/permissions.html
正如QuickFix所说,CSP 规则的重要性仍然存在。
:media-src: 'self' 媒体流:
【讨论】:
将“blob:”添加到 Content-Security-Policy media-src 在 Chrome 中有效:media-src * blob:
【参考方案2】:
您是否在 html 文件中配置了内容安全策略? (如果您不使用带有插件cordova-plugin-whitelist的cordova 5,请放弃此答案)
我认为为了在cordova中使用getUserMedia,你必须在你的CSP元标记中添加以下字符串:
media-src: 'self' mediastream:
(csp配置借用this page)
有关 cordova-plugin-whitelist there 和 CSP 文档 there 的更多信息。
【讨论】:
不幸的是,它没有用。似乎在离子中,它以另一种方式被锁定。但是对于纯科尔多瓦,这个“CSP”指令是正确的。 由于 ionic 是基于 angular 的,你有没有尝试添加 angular-csp.css ? (docs.angularjs.org/api/ng/directive/ngCsp)以上是关于如何在带有人行横道的离子项目上允许 getUserMedia的主要内容,如果未能解决你的问题,请参考以下文章
离子电容器在目标 CapacitorCordova 中不允许操作