Compartilhar via


WebView.ScriptNotify Evento

Definição

Ocorre quando o conteúdo contido no controle WebView passa uma cadeia de caracteres para o aplicativo 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 de evento

Exemplos

O exemplo de código a seguir demonstra o uso do evento ScriptNotify em aplicativos compilados para o Windows 8. Começando com Windows 8.1, omita as linhas relacionadas 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.
}

Comentários

Uma página HTML hospedada pode disparar o evento ScriptNotify em seu aplicativo UWP quando a página chama window.external.notify e passa um parâmetro de cadeia de caracteres.

Observação

Como esse evento é iniciado pelo código externo, você deve ter cuidado com o que colocou no manipulador de eventos. Para impedir que scripts mal-intencionados explorem esse evento, habilite-o apenas para URIs confiáveis, conforme descrito abaixo.

Windows 8.1

Para habilitar uma página da Web externa para disparar o evento ScriptNotify ao chamar window.external.notify, você deve incluir o URI da página na seção ApplicationContentUriRules do manifesto do aplicativo. (Você pode fazer isso no Visual Studio na guia URIs de Conteúdo do designer Package.appxmanifest .) Os URIs nesta lista devem usar HTTPS e podem conter caracteres curinga de subdomínio (por exemplo, "https://.microsoft.com"), mas não podem conter curingas de domínio (por exemplo, "https://.com" e "https://."). O requisito de manifesto não se aplica ao conteúdo que se origina no pacote do aplicativo, que usa um URI ms-local-stream:// ou que seja carregado usando o método NavigateToString.

Observação

Se você tiver mais de um subdomínio, deverá usar um curinga para cada subdomínio. Por exemplo, "https://*.microsoft.com" corresponde a "https:// any.microsoft.com", mas não com "https:// this.any.microsoft.com"

Essas alterações não afetam os aplicativos compilados para o Windows 8, mesmo quando executados em Windows 8.1.

AllowedScriptNotifyUris, AnyScriptNotifyUri e AllowedScriptNotifyUrisProperty não têm suporte em aplicativos compilados para Windows 8.1.

Windows 8

Esses comentários se aplicam somente a aplicativos compilados para Windows 8, mesmo quando executados em Windows 8.1.

Se o conteúdo for carregado no controle WebView usando o método Navigate , o aplicativo deverá aceitar receber eventos ScriptNotify usando a propriedade AllowedScriptNotifyUris , que tem a lista de URIs que podem disparar ScriptNotify. Se o conteúdo for carregado usando NavigateToString, o aplicativo receberá eventos ScriptNotify sem a aceitação. Defina a propriedade AllowedScriptNotifyUris como o valor retornado pela propriedade AnyScriptNotifyUri para indicar que qualquer página pode disparar eventos ScriptNotify para esse controle WebView .

Aplica-se a

Confira também