4

Windows Phone 7/Silverlight 用のアプリを作成しています。WebBrowser コントロールを含むアプリ ページ (アプリの状態で Uri を保存しました) でアプリが廃棄されて再アクティブ化されるか、NavigationService.GoBack()または電話の [戻る] ボタンによって同じアプリ ページに移動すると、コントロールに webbrowser.source 値が残っている限り、正常にレンダリングされるはずですが、そうではありません。Navigate() メソッドを使用しない限り、何を試しても白/空白の画面が表示されます。残念ながら、Navigate() メソッドを使用すると、Web コンテンツが不必要に再度ダウンロードされます。GoBack() のみを使用して WebBrowser コントロールを使用してアプリケーション ページに戻る場合は特にイライラしますが、これは私のアプリではよくあることです。

    private void OnWebBrowserLoaded(object sender, RoutedEventArgs e)
    {
        //webBrowser1.Source = CurrentUri; //does not work, results in white/blank browser page
        webBrowser1.Navigate(CurrentUri); //works, but page has to reload from web, bad UX
    }

この問題を回避するための提案はありますか? また、この同じコードをページ読み込みハンドラーに入れてみました。それは同じ悪い方法で動作します。

また、HTML を保存して (SaveToString)、アプリの状態 (NavigateToString) から再読み込みしようとしましたが、HTML は正常に表示されますが、何らかの理由で Web ページが完全にレンダリングされません。また、Host プロパティと Uri プロパティにアクセスしたいと考えています。NavigateToString から HTML を正常にレンダリングできれば、おそらく回避できます。ありがとう、ジェイ

4

1 に答える 1

0

browsertask を使用する必要があります。

using Microsoft.Phone.Tasks;

 WebBrowserTask browse = new WebBrowserTask();
            browse.Uri = new Uri(URL, UriKind.RelativeOrAbsolute);
                //new Uri(URL,UriKind.RelativeOrAbsolute);
            browse.Show();

これで問題が解決するはずです。

URL は、アクセスしたいページの URL になります。

于 2011-10-25T06:14:21.377 に答える