WebView内容安全策略

17
我想在WebView中加载来自Vimeo的视频。它可以工作,但是预览图像不会加载,并且我会收到此错误:

I/chromium: [INFO:CONSOLE(0)] "Refused to load the image 'android-webview-video-poster:default_video_poster/ -5228946977756841864' because it violates the following Content Security Policy directive: "img-src https://i.vimeocdn.com https://secure-b.vimeocdn.com https://f.vimeocdn.com https://vimeo.com https://sb.scorecardresearch.com https://ssl.google-analytics.com https://secure.gravatar.com https://i0.wp.com https://i1.wp.com https://i2.wp.com". ", source: https://player.vimeo.com/video/172374044 (0)

我该如何解决这个问题?

2
你找到解决方案了吗?我也遇到了同样的问题。 - Nitin Mesta
你找到任何解决方案了吗?我在Flutter中使用webview_flutter_plus包,遇到了同样的问题。我尝试添加这个<meta http-equiv="Content-Security-Policy" content="default-src * gap:; script-src * 'unsafe-inline' 'unsafe-eval'; connect-src *; img-src * data: blob: android-webview-video-poster:; style-src * 'unsafe-inline';">但没有成功。 - Jyo
2个回答

12
将以下内容添加到Content-Security-Policy元标记的img-src指令中:
android-webview-video-poster:

如下所示:

<meta http-equiv="Content-Security-Policy" content="default-src * gap:; script-src * 'unsafe-inline' 'unsafe-eval'; connect-src *; img-src * data: blob: android-webview-video-poster:; style-src * 'unsafe-inline';">

1
你是否注意到在添加 meta 标签修复之前,当你看到错误时视频的大小不正确?我也遇到了同样的错误,视频本身的大小不适合适应 Android Web 视图。 - cavalleydude
请问在哪里说明我不是JS专家,求帮忙。 - Maveňツ
将其添加到HTML页面的<head>标签中。 - n33x
@cavalleydude,我不想让所有人都能访问这个*,但是'self'无法正常工作,错误信息为:Refused to load the image 'android-webview:default_video_poster/4145483716572850442' because it violates the following Content Security Policy directive: "img-src 'self' data: android-webview-video-poster:"。 - Michael Burger
你对这个有什么想法:https://dev59.com/2LHma4cB1Zd3GeqPM4e- - skjagini

1
你可以在<video>标签上添加poster属性。一个空的图片也可以。默认的android-webview-video-poster看起来很糟糕。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接