1

WebBrowserTask を呼び出すページがあります。ユーザーがブラウザーから戻ってきたときに、タスクを起動したページではなく、前のページを表示したい。

問題は、ナビゲーション スタックに現在のページが含まれておらず、ページのエントリからそれを削除する方法がなく、WebBrowserTask では何もできないことです。

Android では、特定のアクティビティがバック スタックに追加されないように指定できます。このようなものはありますか?

現在、私が望んでいることをほとんど行うことがわかった唯一の方法は、タスクを呼び出すときにフラグを設定し、ページの OnNavigatedTo ハンドラーでそれをチェックすることです。しかし、ページは戻る数秒前に表示されたままです。良くない。

ありがとう。

4

1 に答える 1

0

私はこれをテストしていませんが、次のことができるかもしれません

bool navigatedFromBrowser;
public MainPage()
{
    navigatedFromBrowser = false;
}
public void someMethod()
{
    WebBrowserTask webBrowserTask = new WebBrowserTask();
    webBrowserTask.Uri = new Uri("http://msdn.microsoft.com", UriKind.Absolute);
    webBrowserTask.Show();
    navigatedFromBrowser = true;
}
protected override void OnNavigatedFrom(System.Windows.Navigation.NavigationEventArgs e)
{
    if(navigatedFromBrowser && NavigationService.CanGoBack)
    {
        navigatedFromBrowser = false;
        NavigationService.GoBack();
    }

}

それは醜い方法かもしれませんが、うまくいくかもしれません。navigatedFromBrowser は、ブラウザから戻ったときにページの同じインスタンスになるため、その値を保持する必要があります。

于 2012-09-04T18:55:42.617 に答える