如何在带有人行横道的离子项目上允许 getUserMedia

Posted

技术标签:

【中文标题】如何在带有人行横道的离子项目上允许 getUserMedia【英文标题】:How to allow getUserMedia on a ionic project with crosswalk 【发布时间】:2015-07-02 13:37:23 【问题描述】:

当我使用人行横道运行我的 ionic 应用程序并尝试通过 getUserMedia api 打开相机时。我收到 PermissionDenied 错误

如何允许访问相机?

【问题讨论】:

【参考方案1】:

我设法解决了以下问题:

只需使用纯科尔多瓦,无需离子或 CCA。

添加人行横道插件:

cordova 插件添加 cordova-plugin-crosswalk-webview

存储库页面:https://github.com/crosswalk-project/cordova-plugin-crosswalk-webview

并在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的主要内容,如果未能解决你的问题,请参考以下文章

用于构建 x86 apk 的离子人行横道配置

如何在带有电容器的离子中重命名平台“App”

离子电容器在目标 CapacitorCordova 中不允许操作

人行横道项目错误“构建 ABI 'armeabi-v7a' 失败”

如何在真实设备中使用离子运行移动应用程序

甘特图(横道图)时间坐标跨年度月份,如何编排?