WebView.ScriptNotify Событие

Определение

Происходит, когда содержимое, содержащееся в элементе управления WebView , передает строку приложению с помощью 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"/>

Тип события

Примеры

В следующем примере кода показано использование события ScriptNotify в приложениях, скомпилированных для Windows 8. Начиная с Windows 8.1 опустите строки, связанные с 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.
}

Комментарии

Размещенная HTML-страница может вызывать событие ScriptNotify в приложении UWP, когда страница вызывает window.external.notify и передает строковый параметр.

Примечание

Так как это событие инициируется внешним кодом, следует с осторожностью относиться к тому, что вы помещаете в обработчик событий. Чтобы предотвратить использование этого события вредоносными сценариями, включите его только для доверенных URI, как описано ниже.

Windows 8.1

Чтобы включить внешнюю веб-страницу для запуска события ScriptNotify при вызове window.external.notify, необходимо включить URI страницы в раздел ApplicationContentUriRules манифеста приложения. (Это можно сделать в Visual Studio на вкладке URI содержимого конструктора Package.appxmanifest.) URI в этом списке должны использовать протокол HTTPS и могут содержать подстановочные знаки поддоменов (например, "https://.microsoft.com"), но они не могут содержать подстановочные знаки домена (например, "https://.com" и "https://". Требования манифеста не применяются к содержимому, которое поступает из пакета приложения, использует URI ms-local-stream:// или загружается с помощью метода NavigateToString.

Примечание

При наличии нескольких поддоменов необходимо использовать один поддомен для каждого поддомена. Например, "https://*.microsoft.com" соответствует "https:// any.microsoft.com", но не "https:// это. any.microsoft.com.

Эти изменения не влияют на приложения, скомпилированные для Windows 8, даже при работе на Windows 8.1.

AllowedScriptNotifyUris, AnyScriptNotifyUri и AllowedScriptNotifyUrisProperty не поддерживаются в приложениях, скомпилированных для Windows 8.1.

Windows 8

Эти замечания относятся только к приложениям, скомпилированным для Windows 8, даже если они работают на Windows 8.1.

Если содержимое загружается в элемент управления WebView с помощью метода Navigate , приложение должно согласиться на получение событий ScriptNotify с помощью свойства AllowedScriptNotifyUris , которое содержит список URI, которые могут вызывать ScriptNotify. Если содержимое загружается с помощью NavigateToString, приложение будет получать события ScriptNotify без согласия. Задайте для свойства AllowedScriptNotifyUris значение, возвращаемое свойством AnyScriptNotifyUri , чтобы указать, что любая страница может запускать события ScriptNotify в этом элементе управления WebView .

Применяется к

См. также раздел