情報
要求されたトピックは次のとおりです。しかし、このトピックはこのライブラリには含まれていません。

WebView.ScriptNotify Event

WebView コントロールに含まれているコンテンツが JavaScript を使用してアプリケーションに文字列を渡すときに発生します。

構文


public event NotifyEventHandler ScriptNotify


<WebView ScriptNotify="eventhandler"/>


イベント情報

Delegate NotifyEventHandler

解説

ページが window.external.notify を呼び出し、文字列パラメーターを渡すとき、ホストされた HTML ページが Windows ストア アプリで ScriptNotify イベントを発行できます。

メモ  このイベントは外部コードによって発生するため、イベント ハンドラーの内容について注意する必要があります。悪意のあるスクリプトがこのイベントを悪用しないようにするため、次に示すように、必ず信頼されている URI にのみ有効にしてください。

Windows 8.1

window.external.notify の呼び出し時に、外部 Web ページを有効にして ScriptNotify イベントを発生させるには、そのページの URI をアプリケーション マニフェストの ApplicationContentUriRules セクションに含める必要があります。(Visual Studio で、Package.appxmanifest デザイナーの [コンテンツ URI] タブでこの作業を実行できます)。この一覧の URI には HTTPS を使用する必要があり、サブドメインのワイルドカード (たとえば、"https://*.microsoft.com") を含めることができますが、ドメインのワイルドカード (たとえば、"https://*.com" や "https://*.*") を含めることはできません。アプリケーションのパッケージから生成されたコンテンツのうち、ms-local-stream:// という URI を使用するもの、または NavigateToString を使用して読み込まれたものに対して、マニフェストの要件は適用されません。

メモ  複数のサブドメインがある場合は、サブドメインごとに 1 つのワイルドカードを使用する必要があります。 たとえば、"https://*.microsoft.com" は "https://any.microsoft.com" に一致しますが、"https://this.any.microsoft.com" には一致しません。

これらの変更は、Windows 8.1 で実行中の場合であっても、Windows 8 用にコンパイルされたアプリには影響しません。

AllowedScriptNotifyUrisAnyScriptNotifyUri、および AllowedScriptNotifyUrisProperty は、Windows 8.1 用にコンパイルされたアプリではサポートされていません。

Windows 8

これらのコメントは、Windows 8.1 で実行中の場合であっても、Windows 8 用にコンパイルされたアプリにのみ適用されます。

Navigate メソッドを使用してコンテンツを WebView コントロールに読み込む場合、アプリケーションは AllowedScriptNotifyUris プロパティを使用して、ScriptNotify イベントの受信を選択する必要があります。このプロパティには、ScriptNotify を発行できる URI のリストがあります。コンテンツが NavigateToString を使用して読み込まれている場合、アプリケーションはオプトインしなくても ScriptNotify イベントを受信します。AllowedScriptNotifyUris プロパティを AnyScriptNotifyUri プロパティによって返される値に設定して、任意のページがこの WebView コントロールに ScriptNotify イベントを発行できることを示します。

次のコード例は、Windows 8 用にコンパイルされたアプリで ScriptNotify イベントを使用する方法を示しています。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.
}


要件

最小限サポートされるクライアント

Windows 8

最小限サポートされるサーバー

Windows Server 2012

名前空間

Windows.UI.Xaml.Controls
Windows::UI::Xaml::Controls [C++]

メタデータ

Windows.winmd

参照

WebView
AllowedScriptNotifyUris

 

 

表示:
© 2014 Microsoft