htmlwidget
13 min
el objeto objeto htmlwidget le permite instanciar navegadores html adicionales idl de htmlwidget interface htmlwidgetevent { attribute string type; \[optional] attribute string url; }; callback htmlwidgeteventcallback = void (htmlwidgetevent event); \[ constructor(htmlwidgetparams params) ] interface htmlwidget { void postmessage(object data); void close(); void raise(); void lower(); void addeventlistener(string type, htmlwidgeteventcallback callback); void removeeventlistener(string type, htmlwidgeteventcallback callback); }; interface htmlwidgetparams { attribute htmlwidgetrect rect; attribute string url; \[optional] attribute nodeparams node; \[optional] attribute javascriptinjection javascriptinjection; \[optional] attribute bool bsobjects; \[optional] attribute storage storage; \[optional] attribute string inspectorserver; \[optional] attribute bool inputenabled; \[optional] attribute security security; \[optional] attribute string transform; \[optional] attribute string hwzdefault; \[optional] attribute bool interceptreloads; }; interface htmlwidgetrect { attribute long x; attribute long y; attribute long w; attribute long h; }; interface nodeparams { attribute bool enabled; \[optional] attribute array\<string> arguments; }; interface javascriptinjection { \[optional] attribute javascriptinjectiondetaillist documentcreation; \[optional] attribute javascriptinjectiondetaillist documentready; \[optional] attribute javascriptinjectiondetaillist deferred; }; interface javascriptinjectiondetail { \[optional] attribute string world; \[optional] attribute string source; \[optional] attribute string uri; \[optional] attribute string code; }; interface storage { attribute string path; attribute long quota; attribute bool forcesharedstorage; attribute bool forceunsharedstorage; }; interface security { \[optional] attribute bool insecureoriginenabled; \[optional] attribute bool cameraenabled; \[optional] attribute bool desktopcaptureenabled; \[optional] attribute bool audiocaptureenabled; \[optional] attribute bool insecurehttpsenabled; \[optional] attribute bool trustediframesenabled; }; creación de objetos para crear un objeto htmlwidget primero cargue el módulo brightsign/htmlwidget mediante el método require() luego cree una instancia de la clase htmlwidget var htmlwidgetclass = require("@brightsign/htmlwidget"); var htmlwidget = new htmlwidgetclass({ rect {x 0, y 0, w 640, h 480 }, url "https //brightsign biz" }); htmlwidgetevent disponible a partir de bos 9 0 168 consulte manejo de eventos de javascript docid\ pqiipi27tfco3zuvjmnyx la causa del evento puede ser una de las siguientes "load started" el widget html ha comenzado a cargar una página "carga finalizada" el widget html completó la carga de una página "error de carga" el widget html no pudo cargar una página utilice la clave url para identificar el recurso que falla y la clave mensaje para recuperar texto explicativo htmlwidget postmessage() void postmessage(object data) envía un mensaje asincrónico al proceso del navegador secundario si el proceso secundario tiene un objeto @brightsign/messageport abierto, este mensaje generará un evento "bsmessage" en ese objeto la carga útil puede ser cualquier objeto javascript, pero debe tener solo un nivel de profundidad (es decir, no puede incluir otros objetos anidados) close() void close() cierra el proceso del navegador secundario esto equivale a llamar a window\ close() desde dentro del navegador secundario los procesos primarios de node js® no se cerrarán automáticamente y el widget html no puede ser recolectado por el garbage collector hasta que el widget se cierre raise() void raise() cambia el orden de apilamiento de los widgets html lower() void lower() cambia el orden de apilamiento de los widgets html htmlwidgetparams esta interfaz contiene los parámetros del widget html rect \<font color="#704ae0">htmlwidgetrect\</font> contiene los parámetros establecidos del tamaño y posicionamiento del widget url \<font color="#704ae0">string\</font> la url que se utilizará para la visualización nodo \<font color="#704ae0">nodeparams\</font> \<font color="#01a0af">optional\</font> contiene los parámetros utilizados para especificar la funcionalidad agregada de node js javascriptinjection \<font color="#704ae0">javascriptinjection\</font> \<font color="#01a0af">optional\</font> contiene los parámetros que especifican el código javascript para inyectar en diferentes puntos de inicialización bsobjects \<font color="#704ae0">bool\</font> \<font color="#01a0af">optional\</font> habilita o deshabilita objetos brightscript javascript docid\ kchqxioymz9gbnwivrkiv este valor está deshabilitado de forma predeterminada almacenamiento \<font color="#704ae0">storage\</font> \<font color="#01a0af">optional\</font> se utiliza para configurar el almacenamiento html inspectorserver \<font color="#704ae0">string\</font> \<font color="#01a0af">optional\</font> habilita inspector de chromium docid\ tkkedyuswbejhd0ljmhcs , que le permite depurar aplicaciones javascript mientras una página web se está ejecutando a partir de bos 8 5 31 también deberá configurar la clave del registro enable web inspector (en la sección "html") para habilitar la consola javascript para acceder a la consola, navegue a la dirección ip del reproductor en el número de puerto especificado consulte esta página https //trac webkit org/wiki/webinspector para obtener documentación relacionada con la consola javascript en “enable web inspector”, "1" permitirá el inspector y "0" o la ausencia del valor lo deshabilitará será necesario reiniciar para que estos cambios surtan efecto (si habilita/deshabilita esto mediante la ui de ldws, puede que se active un reinicio para aplicar el cambio) por razones de seguridad, habilitar inspector web solo debe utilizarse en presentaciones que no sean de producción asegúrese de deshabilitar la consola javascript antes de publicar en un entorno de producción en la versión de chromium incluida en bos 8 5 31 y posteriores, la consola javascript registrará información en memoria incluso cuando usted no esté conectado al inspector esto consumirá memoria hasta que el reproductor se quede sin ella, lo que provocará un fallo inputenabled \<font color="#704ae0">bool\</font> \<font color="#01a0af">optional\</font> habilita eventos de mouse/pantalla táctil este valor es false de forma predeterminada seguridad \<font color="#704ae0">security\</font> \<font color="#01a0af">optional\</font> sobrescribe las comprobaciones de seguridad de chromium transformar \<font color="#704ae0">string\</font> \<font color="#01a0af">optional\</font> establece la orientación de pantalla del contenido en el widget (tenga en cuenta que las coordenadas y dimensiones del rorectangle que contiene el widget no se ven afectadas por la rotación) se aceptan los siguientes valores "identidad" no hay transformación (es decir, el contenido del widget está orientado horizontalmente) esta es la configuración predeterminada "rot90" el contenido del widget se rota a orientación vertical a 90 grados (en el sentido de las agujas del reloj) "rot180" el contenido del widget se rota a orientación vertical a 180 grados (en el sentido de las agujas del reloj) "rot270" el contenido del widget se rota a orientación vertical a 270 grados (en el sentido de las agujas del reloj) hwzdefault \<font color="#704ae0">string\</font> \<font color="#01a0af">optional\</font> especifica el comportamiento predeterminado de video hwz docid\ pdytb1wooqwkyvcd5fjms este valor está apagado de forma predeterminada para habilitarlo, establézcalo en encendido interceptreloads \<font color="#704ae0">bool\</font> \<font color="#01a0af">optional\</font> evita que window\ location reload() u otras construcciones similares surtan efecto en el navegador en su lugar, el elemento principal recibirá un evento solicitudderecarga htmlwidgetrect esta interfaz le permite establecer el tamaño y la posición del rectángulo del widget x long especifica la coordenada x para el widget y long especifica la coordenada y para el widget w long establece el ancho del widget en píxeles h long establece la altura del widget en píxeles nodeparams esta interfaz le permite habilitar node js y definir los parámetros de los argumentos de línea de comandos de node js habilitado \<font color="#704ae0">bool\</font> habilita node js docid\ nrv t0oesruqtx bogkwp en el widget el valor es falso de forma predeterminada argumentos \<font color="#704ae0">array\</font> \<font color="#01a0af">optional\</font> una matriz que especifica argumentos de línea de comandos javascriptinjection use esta interfaz para inyectar scripts de usuario en el motor javascript documentcreation \<font color="#704ae0">javascriptinjectiondetaillist\</font> \<font color="#01a0af">optional\</font> el script se ejecutará tan pronto como se cree el documento este comportamiento no es adecuado para ninguna operación dom documentready \<font color="#704ae0">javascriptinjectiondetaillist\</font> \<font color="#01a0af">optional\</font> el script se ejecutará tan pronto como el dom esté listo este comportamiento es equivalente al evento domcontentloaded que se dispara en javascript diferido \<font color="#704ae0">javascriptinjectiondetaillist\</font> \<font color="#01a0af">optional\</font> el script se ejecutará cuando finalice la carga de la página javascriptinjectiondetail esta interfaz define los scripts de usuario que utiliza la interfaz javascriptinjection exactamente uno de los campos fuente , uri , o código debe estar definido mundo \<font color="#704ae0">string\</font> \<font color="#01a0af">optional\</font> aísla scripts de usuario en diferentes mundos a esta cadena se le puede asignar uno de los siguientes valores solicitud , usuario , o main (consulte esta página https //doc qt io/archives/qt 5 6/qwebenginescript html#scriptworldid enum para más detalles); si el parámetro mundo no está incluido en la matriz, se selecciona " solicitud " de forma predeterminada fuente \<font color="#704ae0">string\</font> \<font color="#01a0af">optional\</font> obsoleto use uri o código en su lugar uri \<font color="#704ae0">string\</font> \<font color="#01a0af">optional\</font> si se define, debe contener un uri "file" o un uri "data" con uno de los siguientes formatos compatibles "data\ text/javascript;charset=utf 8;" "data\ text/javascript;charset=utf 8;base64," "data\ text/javascript;charset=us ascii;" "data\ text/javascript;charset=us ascii;base64," código \<font color="#704ae0">string\</font> \<font color="#01a0af">optional\</font> si se define, el contenido se ejecutará como código javascript almacenamiento esta interfaz le permite definir los siguientes parámetros de almacenamiento html ruta \<font color="#704ae0">string\</font> la carpeta utilizada por aplicaciones de almacenamiento local, como la clase de almacenamiento de javascript cuota \<font color="#704ae0">long\</font> el tamaño (en bytes) asignado a todas las aplicaciones de almacenamiento local (incluido indexeddb) si la ruta de almacenamiento se especifica sin una cuota de almacenamiento, chromium reserva de forma predeterminada 1 gb más el 10 % del tamaño total del dispositivo de almacenamiento forcesharedstorage \<font color="#704ae0">bool\</font> permite que las url cargadas mediante http/https compartan almacenamiento local si se cargan desde el mismo dominio forceunsharedstorage \<font color="#704ae0">bool\</font> evita que las url cargadas desde archivos compartan almacenamiento los datos pueden dañarse si dos widgets html acceden a la base de datos al mismo tiempo, pero algunas aplicaciones dependen de este tipo de acceso use la marca force unshared storage para evitar compartir en url locales si experimenta problemas de datos, o use la marca force shared storage para permitir compartir en sitios http/https (si ambas marcas están establecidas, el almacenamiento de archivos se separa y el almacenamiento http no ) seguridad anula las comprobaciones de seguridad de chromium para estos parámetros origeninsegurohabilitado \<font color="#704ae0">bool\</font> \<font color="#01a0af">optional\</font> ignora los orígenes inseguros y los trata como habilitados cameraenabled \<font color="#704ae0">bool\</font> \<font color="#01a0af">optional\</font> habilita el acceso de páginas web a cámaras usb conectadas al reproductor (el acceso está deshabilitado de forma predeterminada) esto permite compatibilidad con aplicaciones webrtc desktopcaptureenabled \<font color="#704ae0">bool\</font> \<font color="#01a0af">optional\</font> habilita la captura del escritorio audiocaptureenabled \<font color="#704ae0">bool\</font> \<font color="#01a0af">optional\</font> habilita la captura de audio insecurehttpsenabled \<font color="#704ae0">bool\</font> \<font color="#01a0af">optional\</font> ignora los errores de seguridad al conectarse a hosts https inseguros (https inseguro está deshabilitado de forma predeterminada) habilitar esta función hace que el reproductor sea inseguro; no es adecuado para entornos de producción y solo debe utilizarse para pruebas trustediframesenabled \<font color="#704ae0">bool \</font> \<font color="#01a0af">opcional\</font> controla si el contenido cargado en iframes tiene permitido el acceso a objetos node js y brightsign javascript esta marca estará disponible para las versiones bos 9 1 75 3 y posteriores provocará un error al cargar el widget html si se usa en versiones anteriores para habilitar node en iframes, inicialice habilitado y trustediframesenabled como verdadero para habilitar objetos brightsign javascript docid\ kchqxioymz9gbnwivrkiv en iframes, inicialice bsobjects y trustediframesenabled como verdadero con bos 8 2 y versiones posteriores (chromium69 y posteriores), se han agregado varias verificaciones cors nuevas security params websecurity o enablesecurity(false) no deshabilitan todas estas verificaciones use la siguiente configuración de registro en su lugar registro de escritura html disable web security 1 esta marca tendrá efecto en todas las instancias de htmlwidget , a diferencia de las marcas anteriores que solo son efectivas en la instancia en la que se llaman para escribir esto en el registro usando roregistrysection docid\ zkg2it0mwzhiyugeupuib reghtml = createobject("roregistrysection", "html") reghtml write("disable web security", "1") reghtml flush()