WebView.ScriptNotify Событие
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
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 .