WebViewControl.AddInitializeScript(String) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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
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.