OBJETIVO : cargar un archivo de video local desde el disco duro
Techstack : reaccionar electron v16 electronforge v6 webpack
mi index.html se ve así
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>app</title> </head> <body> <div id="app"></div> </body> </html>NO he aprobado ninguna política de seguridad de contenido,
en mi videoComponent.tsx
<video id="video1" ref={videoRef} className="video" src ={`priviliged://${videoPath}`} // videopath = " E:\videofolder\videofile.mp4" ></video>según https://www.electronjs.org/docs/latest/api/protocol#protocolregisterschemesasprivilegedcustomschemes Un esquema estándar se adhiere a lo que RFC 3986 llama sintaxis URI genérica. Por ejemplo, http y https son esquemas estándar, mientras que el archivo no lo es.
Decidí hacer un protocolo privilegiado personalizado según los documentos en electron.main.ts
app.whenReady().then(() => { protocol.registerSchemesAsPrivileged([ { scheme: "priviliged", privileges: { bypassCSP: true } }, ]); });y se aplicó a videocomponent.tsx ` pero sigo recibiendo este error
Refused to load media from 'priviliged://E:\videofolder\videofile.mp4' because it violates the following Content Security Policy directive: "default-src 'self' 'unsafe-inline' data:". Note that 'media-src' was not explicitly set, so 'default-src' is used as a fallback.¿Qué tengo que hacer?
Deberá modificar la política de seguridad de contenido. Su política actual es "default-src 'self' 'unsafe-inline' data:", que permitirá cualquier secuencia de comandos del host donde se carga su página, cualquier secuencia de comandos en línea y cualquier cosa a través del esquema de datos. Para permitir la carga de archivos locales, es probable que deba agregar "filesystem:" a su CSP como tal:
default-src 'self' 'unsafe-inline' datos: sistema de archivos:
Dado que está utilizando el protocolo de archivo,
Agregue la siguiente línea en su archivo index.html
<meta http-equiv="Content-Security-Policy" content="default-src 'none'">