WebViewControl.AddInitializeScript(String) Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Inserta un script en un control WebViewControl justo después de ContentLoading , pero antes de que se ejecute cualquier otro script en la página.
public:
virtual void AddInitializeScript(Platform::String ^ script) = AddInitializeScript;
void AddInitializeScript(winrt::hstring const& script);
public void AddInitializeScript(string script);
function addInitializeScript(script)
Public Sub AddInitializeScript (script As String)
Parámetros
- script
-
String
Platform::String
winrt::hstring
Implementaciones
Requisitos de Windows
Familia de dispositivos |
Windows 10, version 1809 (se introdujo en la versión 10.0.17763.0)
|
API contract |
Windows.Foundation.UniversalApiContract (se introdujo en la versión v7.0)
|
Ejemplos
El código siguiente es un ejemplo de C# de inserción de scripts en la carga de páginas:
WebViewControl webViewControl;
// Replace the window.external with a custom object that does postMessage. The app
// script uses ScriptNotify and InvokeScriptAsync to implement PostMessage and invoke
// a messageReceived handler.
String script = @"var realExternal = window.external;
var customExternal = {
postMessage: (message) => { realExternal.notify('PostMessage: ' + message); },
messageReceived: null,
};
window.external = customExternal;";
void ScriptNotifyCallback(WebViewControl sender, WebViewControlScriptNotifyEventArgs args)
{
String response = GetResponseForPostFromWebView(args.value);
sender.InvokeScriptAsync("eval", $"window.external.messageReceived({response});");
}
webViewControl.ScriptNotify += ScriptNotifyCallback;
webViewControl.AddInitializeScript(script);
webViewControl.Navigate(new Uri("http://mydomain.com"));
Con InvokeScriptAsync, una aplicación puede insertar scripts en un WebViewControl para proporcionar funcionalidad adicional o modificar la página. Sin embargo, InvokeScriptAsync no tiene ninguna garantía sobre cuándo se ejecuta el script y, si la aplicación lo llama antes de que DOMContentLoaded se genere, existe el riesgo de que el script se inserte en la página anterior. En este ejemplo se ofrece una manera de que la aplicación proporcione un script antes de la navegación (o durante NavigationStarting) que se ejecutará antes de que se ejecute cualquier script de la página.