Si usted está tratando de añadir esta función para el control del navegador in-ap, puedo sugerirle una forma.
Tiene que inyectar un script java en cada página web, el control del navegador puede cargar la página correctamente. En el script java use window.extern. notificar para invocar la función ScriptNotify
en su código. En la detección del mensaje apropiado crear una nueva instancia de control del navegador y agréguelo a una matriz o lista. De este modo, puede emular la nueva función de pestaña para el control del navegador en la aplicación.
el código JS a inyectar puede ser así String NEW_TAB_FUNCTION = "window.open = function(__msg){window.external.notify('addnewtab');};";
que se puede inyectar usando browser.InvokeScript("eval", NEW_TAB_FUNCTION);
en jaque ScriptNotify para addnewtab
(mantener IsScriptEnabled = True
)
void WebBrowser_ScriptNotify(object sender, NotifyEventArgs e)
{
if (e.Value == "addnewtab")
{
//do work here
}
}
Tenga en cuenta que he anulado la función window.open en el JS con una función que se inyectará cada vez en una nueva página web para recibir notificaciones de la entrada del usuario.
También tenga en cuenta que esto funciona solo para el control WebBrowser y no para el navegador externo.
En la configuración del navegador, hay una opción para 'Abrir enlaces en una nueva pestaña'. Dudo que la aplicación pueda anularlo. – Osiris