WebView.ScriptNotify Ereignis
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.
Tritt auf, wenn der im WebView-Steuerelement enthaltene Inhalt mithilfe von JavaScript eine Zeichenfolge an die Anwendung übergibt.
public:
virtual event NotifyEventHandler ^ ScriptNotify;
// Register
event_token ScriptNotify(NotifyEventHandler const& handler) const;
// Revoke with event_token
void ScriptNotify(event_token const* cookie) const;
// Revoke with event_revoker
WebView::ScriptNotify_revoker ScriptNotify(auto_revoke_t, NotifyEventHandler const& handler) const;
public event NotifyEventHandler ScriptNotify;
function onScriptNotify(eventArgs) { /* Your code */ }
webView.addEventListener("scriptnotify", onScriptNotify);
webView.removeEventListener("scriptnotify", onScriptNotify);
- or -
webView.onscriptnotify = onScriptNotify;
Public Custom Event ScriptNotify As NotifyEventHandler
<WebView ScriptNotify="eventhandler"/>
Ereignistyp
Beispiele
Im folgenden Codebeispiel wird die Verwendung des ScriptNotify-Ereignisses in Apps veranschaulicht, die für Windows 8 kompiliert wurden. Lassen Sie ab Windows 8.1 die Zeilen im Zusammenhang mit AllowedScriptNotifyUris aus.
public MyPage()
{
this.InitializeComponent();
MyWebView.ScriptNotify += MyWebView_ScriptNotify;
// Here we have to set the AllowedScriptNotifyUri property because we are
// navigating to some site where we don't own the content and we want to
// allow window.external.notify() to pass data back to the app.
List<Uri> allowedUris = new List<Uri>();
allowedUris.Add(new Uri("http://www.bing.com"));
MyWebView.AllowedScriptNotifyUris = allowedUris;
}
void MyWebView_ScriptNotify(object sender, NotifyEventArgs e)
{
// Respond to the script notification.
}
Hinweise
Eine gehostete HTML-Seite kann das ScriptNotify-Ereignis in Ihrer UWP-App auslösen, wenn die Seite window.external.notify aufruft und einen Zeichenfolgenparameter übergibt.
Hinweis
Da dieses Ereignis durch externen Code initiiert wird, sollten Sie vorsichtig sein, was Sie in den Ereignishandler einfügen. Um zu verhindern, dass böswillige Skripts dieses Ereignis ausnutzen, müssen Sie es nur für vertrauenswürdige URIs aktivieren, wie unten beschrieben.
Windows 8.1
Damit eine externe Webseite das ScriptNotify-Ereignis beim Aufrufen von window.external.notify auslöst, müssen Sie den URI der Seite im Abschnitt ApplicationContentUriRules des App-Manifests einschließen. (Sie können dies in Visual Studio auf der Registerkarte Inhalts-URIs des Package.appxmanifest-Designers tun.) Die URIs in dieser Liste müssen HTTPS verwenden und können Unterdomänenplatzhalter enthalten (z. B. "https://.microsoft.com"), aber sie dürfen keine Domänenplatzhalter enthalten (z. B. "https://.com" und "https://."). Die Manifestanforderung gilt nicht für Inhalte, die aus dem App-Paket stammen, die einen URI vom Typ „ms-local-stream:// URI“ verwenden, oder die mit NavigateToString geladen werden.
Hinweis
Wenn Sie über mehr als eine Unterdomäne verfügen, müssen Sie einen Platzhalter für jede Unterdomäne verwenden. Beispielsweise entspricht "https://*.microsoft.com" mit "https:// any.microsoft.com", aber nicht mit "https:// this. any.microsoft.com."
Diese Änderungen wirken sich nicht auf apps aus, die für Windows 8 kompiliert wurden, auch wenn sie unter Windows 8.1 ausgeführt werden.
AllowedScriptNotifyUris, AnyScriptNotifyUri und AllowedScriptNotifyUrisProperty werden in Apps, die für Windows 8.1 kompiliert wurden, nicht unterstützt.
Windows 8
Diese Hinweise gelten nur für Apps, die für Windows 8 kompiliert wurden, auch wenn sie unter Windows 8.1 ausgeführt werden.
Wenn Inhalte mithilfe der Navigate-Methode in das WebView-Steuerelement geladen werden, muss sich die App für den Empfang von ScriptNotify-Ereignissen mithilfe der AllowedScriptNotifyUris-Eigenschaft anmelden, die die Liste der URIs enthält, die ScriptNotify auslösen können. Wenn der Inhalt mithilfe von NavigateToString geladen wird, erhält die Anwendung ScriptNotify-Ereignisse ohne die Anmeldung. Legen Sie die AllowedScriptNotifyUris-Eigenschaft auf den Wert fest, der von der AnyScriptNotifyUri-Eigenschaft zurückgegeben wird, um anzugeben, dass jede Seite ScriptNotify-Ereignisse für dieses WebView-Steuerelement auslösen kann.