科尔多瓦:内容安全政策指令:“ media-src *”

Nev*_*ore 2 cordova content-security-policy

这是我的meta标签:

<meta http-equiv="Content-Security-Policy" content="default-src * 'self' data: gap: https://ssl.gstatic.com 'unsafe-eval'; style-src http://* 'self' 'unsafe-inline'; media-src *">
Run Code Online (Sandbox Code Playgroud)

我正在使用此元标记在端口上调用服务器的socket.io.js文件,例如:

<script src="https://example.co:3344/socket.io/socket.io.js"></script>
Run Code Online (Sandbox Code Playgroud)

这是针对WebRTC(rtcmulticonnection)的,因此我的流事件已触发,流创建了媒体:

rtcMultiConnection.onstream = function(event) {
    if (event.stream.getVideoTracks().length) {
        $('.users-container').append(event.mediaElement);
    }
}
Run Code Online (Sandbox Code Playgroud)

并发生错误:

拒绝从“ blob:http:// localhost:8000 / 74677955-8811-43d0-bf30-2362208364d7 ” 加载媒体,因为它违反了以下内容安全策略指令:“ media-src *”。

它适用于Mozilla Firefox,但不适用于Android,Chrome浏览器和IOS。

编辑

AndroidManifest权限:

<uses-permission android:name="android.permission.CAMERA" />
    <uses-permission android:name="android.permission.MICROPHONE" />
    <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
    <uses-permission android:name="android.permission.RECORD_AUDIO" />
    <uses-permission android:name="android.permission.WAKE_LOCK" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
Run Code Online (Sandbox Code Playgroud)

我看不到android错误。

sif*_*day 6

尝试在meta标记以及通配符中使用“ media-src blob:”:

<meta http-equiv="Content-Security-Policy" content="default-src * 'self' data: gap: https://ssl.gstatic.com 'unsafe-eval'; style-src http://* 'self' 'unsafe-inline'; media-src * blob:">
Run Code Online (Sandbox Code Playgroud)

https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Headers/Content-Security-Policy/media-src