検索コントラクトの利用についてはMetroStyleApp入門 vol28.検索コントラクトを利用するで紹介しました。
注意したいのはアプリが非アクティブな状態から検索コントラクトの検索対象として起動されることがある点です。
この場合、アプリが最初に表示するページは検索結果を表示するページです。
この際に初期ページで初期化処理を行っているようなアプリケーションが検索コントラクトに対応することで思わぬ動作をすることがあります。
よくあるケースが必要な初期化処理をせずにアプリがシャットダウンするなどです。
検索コントラクトから起動した場合の初期化処理としてApp.xaml.csに以下のメソッドがありますので、そこに初期化処理を書きましょう。
/// <summary> /// 検索結果を表示するためにアプリケーションがアクティブになるときに呼び出されます。 /// </summary> /// <param name="args">アクティブ化要求に関する詳細を表示します。</param> protected async override void OnSearchActivated(Windows.ApplicationModel.Activation.SearchActivatedEventArgs args) { // TODO: アプリケーションが既に実行されている場合は、検索時間を短縮するために OnWindowCreated で // Windows.ApplicationModel.Search.SearchPane.GetForCurrentView().QuerySubmitted イベントを登録します
Please give us your valuable comment