WebView.ScriptNotify Evento

Definizione

Si verifica quando il contenuto contenuto contenuto nel controllo WebView passa una stringa all'applicazione usando JavaScript.

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"/>

Tipo evento

Esempio

Nell'esempio di codice seguente viene illustrato l'uso dell'evento ScriptNotify nelle app compilate per Windows 8. A partire da Windows 8.1, omettere le righe correlate a AllowedScriptNotifyUris.

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.
}

Commenti

Una pagina HTML ospitata può generare l'evento ScriptNotify nell'app UWP quando la pagina chiama window.external.notify e passa un parametro stringa.

Nota

Poiché questo evento viene avviato da codice esterno, è necessario prestare attenzione a ciò che si inserisce nel gestore eventi. Per impedire agli script dannosi di sfruttare questo evento, assicurarsi di abilitarlo solo per gli URI attendibili, come descritto di seguito.

Windows 8.1

Per consentire a una pagina Web esterna di attivare l'evento ScriptNotify quando si chiama window.external.notify, è necessario includere l'URI della pagina nella sezione ApplicationContentUriRules del manifesto dell'app. Questa operazione può essere eseguita in Visual Studio nella scheda URI contenuto della finestra di progettazione Package.appxmanifest . Gli URI in questo elenco devono usare HTTPS e possono contenere caratteri jolly di sottodominio (ad esempio , "https://.microsoft.com"), ma non possono contenere caratteri jolly di dominio (ad esempio, "https://.com" e "https://"."). Il requisito per il manifesto non si applica al contenuto che proviene dal pacchetto dell'app, usa un URI ms-local-stream:// oppure viene caricato tramite NavigateToString.

Nota

Se si dispone di più sottodomini, è necessario usare un carattere jolly per ogni sottodominio. Ad esempio, "https://*.microsoft.com" corrisponde a "https:// any.microsoft.com" ma non a "https:// this". any.microsoft.com."

Queste modifiche non influiscono sulle app compilate per Windows 8, anche quando vengono eseguite in Windows 8.1.

AllowedScriptNotifyUris, AnyScriptNotifyUri e AllowedScriptNotifyUrisProperty non sono supportati nelle app compilate per Windows 8.1.

Windows 8

Queste osservazioni si applicano solo alle app compilate per Windows 8, anche quando vengono eseguite in Windows 8.1.

Se il contenuto viene caricato nel controllo WebView usando il metodo Navigate , l'app deve acconsentire esplicitamente alla ricezione di eventi ScriptNotify usando la proprietà AllowedScriptNotifyUris , che include l'elenco di URI che possono generare ScriptNotify. Se il contenuto viene caricato tramite NavigateToString, l'applicazione riceverà gli eventi ScriptNotify senza il consenso esplicito. Impostare la proprietà AllowedScriptNotifyUris sul valore restituito dalla proprietà AnyScriptNotifyUri per indicare che qualsiasi pagina può generare eventi ScriptNotify su questo controllo WebView .

Si applica a

Vedi anche