Freigeben über


WebViewControl.AddInitializeScript(String) Methode

Definition

Fügt ein Skript direkt nach ContentLoading, aber bevor ein anderes Skript auf der Seite ausgeführt wird, in ein WebViewControl ein.

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)

Parameter

script
String

Platform::String

winrt::hstring

Implementiert

M:Windows.Web.UI.IWebViewControl2.AddInitializeScript(System.String) M:Windows.Web.UI.IWebViewControl2.AddInitializeScript(Platform::String) M:Windows.Web.UI.IWebViewControl2.AddInitializeScript(winrt::hstring)

Windows-Anforderungen

Gerätefamilie
Windows 10, version 1809 (eingeführt in 10.0.17763.0)
API contract
Windows.Foundation.UniversalApiContract (eingeführt in v7.0)

Beispiele

Der folgende Code ist ein C#-Beispiel für die Skripteinschleusung beim Laden von Seiten:

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")); 

Mit InvokeScriptAsync kann eine App Skripts in ein WebViewControl einfügen, um zusätzliche Funktionen bereitzustellen oder die Seite zu ändern. InvokeScriptAsync hat jedoch keine Garantien dafür, wann das Skript ausgeführt wird. Wenn die App es aufruft, bevor DOMContentLoaded ausgelöst wird, besteht die Gefahr, dass das Skript auf der vorherigen Seite eingefügt wird. Dieses Beispiel bietet eine Möglichkeit für die App, ein Skript vor der Navigation (oder während navigationstarting) bereitzustellen, das ausgeführt wird, bevor ein Skript auf der Seite ausgeführt wird.

Gilt für: