[Windows Phone] WebBrowser 控制項載入網頁和儲存網頁至 Isolated Storage

  • 2434
  • 0
  • 2013-12-06

想要在 Windows Phone 中顯示網頁,可以透過 WebBrower 控制項來進行顯示,另外,如果想要將 WebBrower 控制項載入的網頁進行儲存,我們可以儲存到 Isolated Storage,並且可以將 Isolated Storage 網頁資料載入至 WebBrower 控制項。

 

簡介

想要在 Windows Phone 中顯示網頁,可以透過 WebBrower 控制項來進行顯示,另外,如果想要將 WebBrower 控制項載入的網頁進行儲存,我們可以儲存到 Isolated Storage,並且可以將 Isolated Storage 網頁資料載入至 WebBrower 控制項。

 

實作

新增專案,開啟 MainPage.xaml,切換到設計中,然後增加控制項,包含一個 WebBrower、TextBox 和三個 Button,並且包含對應的 Click 事件。



當按下 [開啟網頁] 按鈕時,在 Click 事件中,透過 WebBrowser.Navigate 方法載入的文件,指示指定的位置在 Uri 到 WebBrowser 控制項,取代之前的文件。

 

        private void btnOpen_Click(object sender, RoutedEventArgs e)
        {
            // 開啟網頁
            webBrowser.Navigate(new Uri(tbUrl.Text, UriKind.Absolute));
        }

 

宣告一個常數,存放檔案名稱。

 

        const string filename = "webpage.htm";

 

對於儲存到 IsolatedStorage 的部分,撰寫一個方法 SaveStringToIsolatedStorage,傳入網頁字串後進行儲存。

 

        /// 
        /// 將網頁字串儲存至 IsolatedStorage
        /// 
        /// 

 

private void SaveStringToIsolatedStorage(string strWebContent) { //取得使用者範圍隔離儲存區 IsolatedStorageFile isolatedStorageFile = IsolatedStorageFile.GetUserStoreForApplication(); //刪除先前的檔案 if (isolatedStorageFile.FileExists(filename) == true) { isolatedStorageFile.DeleteFile(filename); } // 儲存至 isolated Storage StreamResourceInfo streamResourceInfo = new StreamResourceInfo(new MemoryStream(System.Text.Encoding.UTF8.GetBytes(strWebContent)), "html/text"); using (BinaryReader binaryReader = new BinaryReader(streamResourceInfo.Stream)) { var data = binaryReader.ReadBytes((int)streamResourceInfo.Stream.Length); using (BinaryWriter binaryWriter = new BinaryWriter(isolatedStorageFile.CreateFile(filename))) { binaryWriter.Write(data); } } }

 

當按下 [儲存至 IsolatedStorage] 按鈕時,在 Click 事件中呼叫 SaveStringToIsolatedStorage 方法進行儲存。

 

        private void btnSave_Click(object sender, RoutedEventArgs e)
        {
            // 儲存至 IsolatedStorage
            string strWebContent = webBrowser.SaveToString();//傳回包含網頁 HTML 內容的字串。
            SaveStringToIsolatedStorage(strWebContent);
        }

 

在 [從 IsolatedStorage 載入] 按鈕的部分,在 Click 事件中,一樣透過 WebBrowser.Navigate 方法載入位於 Isolated Storage 的網頁字串。

 

        private void btnLoad_Click(object sender, RoutedEventArgs e)
        {
            // 從 IsolatedStorage 載入
            webBrowser.Navigate(new Uri(filename, UriKind.Relative));
        }

 

執行程式,當按下 [開啟網頁] 將輸入的網址進行載入。



按下 [儲存至 IsolatedStorage] 將網頁字串進行儲存,按下 [從 IsolatedStorage 載入] 時進行載入。

 

範例下載

WebBrowerApp.zip