酢ろぐ!

カレーが嫌いなスマートフォンアプリプログラマのブログ。

Windows PhoneのWebBrowserコントロールで「戻る」「進む」「更新する」を使う

WinFormでは使用出来ていたWebBrowserコントロールの「戻る」や「進む」にあたるGoBackメソッドやGoForwardメソッドが、Windows Phone向けでは使用出来ません。

XAML側でWebBrowserコントロールを配置しておきます。ここではSourceプロパティに適当なURLを設定しておきます。

IsScriptEnabledプロパティにTrueと指定しておくことでJavaScriptを使用する事が出来ます。Windows Phone 7ではセキュリティの為、WebBrowserコントロールのデフォルト値としてはFlaseが設定されていますので、明示的にTrueを指定しておく必要があります。

<phone:WebBrowser Name="webBrowser1" Source="http://ch3cooh.jp/" 
    IsScriptEnabled="True" />

InvokeScriptメソッドを使用して、ブラウザ内で戻ったり進んだり更新するJavaScriptを実行してやります。

    private void GoBack()
    {
        webBrowser1.InvokeScript("eval", "history.back()");
    }
    
    private void GoForward()
    {
        webBrowser1.InvokeScript("eval", "history.forward()");
    }
    
    private void Refresh()
    {
        webBrowser1.InvokeScript("eval", "location.reload()");
    }

Read Full Web Browser Control for Windows Phone 7」では履歴をスタックした実装のブラウザコントロールが公開されています。こちらを利用する方が履歴の有無によって戻るボタン等の見せ方を変えることが出来ますので使い方によっては便利かもしれません。

参照