WebViewControl.AddInitializeScript(String) Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Injeta um script em um WebViewControl logo após ContentLoading , mas antes que qualquer outro script seja executado na 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
Implementações
Requisitos do Windows
Família de dispositivos |
Windows 10, version 1809 (introduzida na 10.0.17763.0)
|
API contract |
Windows.Foundation.UniversalApiContract (introduzida na v7.0)
|
Exemplos
O código a seguir é um exemplo de injeção de script em C# no carregamento da página:
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"));
Usando InvokeScriptAsync, um aplicativo pode injetar scripts em um WebViewControl para fornecer funcionalidade adicional ou alterar a página. No entanto, InvokeScriptAsync não tem garantias sobre quando o script é executado e, se o aplicativo o chamar antes de DOMContentLoaded ser gerado, há o risco de que o script seja injetado na página anterior. Este exemplo oferece uma maneira de o aplicativo fornecer um script antes da navegação (ou durante NavigationStarting) que será executado antes que qualquer script na página seja executado.