如何在Windows Phone 8 Web应用程序中添加历史记录和收藏夹功能?

时间:2014-06-05 19:06:29

标签: c# browser windows-phone-8 browser-history favorites

我正在为Windows Phone 8构建一个Web浏览器。 现在我做了基本的事情,如后退,前进,刷新等, 但是我想再添加两个功能来完成它。

首先是一个历史记录功能,它记录访问过的网页的历史记录,并在被询问时显示它。

其次,我想添加一个收藏夹功能,浏览器中的当前网页可以放在列表中,以后可以查看列表。

我发现了一些有用的东西,但它是针对wpf而且没有用,所以任何人都可以一步一步告诉我如何处理代码或示例? 如果需要,我也可以发布示例代码。

1 个答案:

答案 0 :(得分:0)

<强> 1。导航历史

处理 导航 WebBrowser控件事件和事件处理程序,并将文本格式的Url保存在独立存储文件中。下面是代码。

你的xaml

中的

<phone:WebBrowser Navigated="WebBrowser_Navigated" ... >

后面的代码中的事件处理程序

private void WebBrowser_Navigated(object sender, NavigationEventArgs e)
    {
        using (IsolatedStorageFile storeFile= IsolatedStorageFile.GetUserStoreForApplication())
        {
            StreamWriter sr = new StreamWriter(new IsolatedStorageFileStream("Browse_History.txt", FileMode.Append, storeFile));
            sr.WriteLine(e.Uri.ToString());
            sr.Close();
        }
    }

以下方法将从本地商店中读取浏览器历史记录

private List<string> ReadHistory()
    {
        List<string> history = new List<string>();
        using (IsolatedStorageFile storeFile = IsolatedStorageFile.GetUserStoreForApplication())
        {
            if (storeFile.FileExists("Browse_History.txt"))
            {
                using (StreamReader reader = new StreamReader(new IsolatedStorageFileStream("Browse_History.txt", System.IO.FileMode.Open, FileAccess.Read, storeFile)))
                {
                    var uri = reader.ReadLine();
                    while (!string.IsNullOrEmpty(uri))
                    {
                        history.Add(uri);
                        uri = reader.ReadLine();
                    }
                    reader.Close();
                    return history;
                }
            }
        }

        return null;
    }

您必须使用顶部的语句添加一些缺少的程序集

 using System.IO.IsolatedStorage;
 using System.IO;

<强> 2。 Favorties

我想你想用当前打开的页面Url按钮点击保存收藏夹。按钮单击事件处理程序编写以下代码。

    private void btnSaveToFavorties_Click(object sender, RoutedEventArgs e)
    {
     using (IsolatedStorageFile appStore = IsolatedStorageFile.GetUserStoreForApplication())
        {
            StreamWriter sr = new StreamWriter(new IsolatedStorageFileStream("Browser_Favorties.txt", FileMode.Append, appStore));
            sr.WriteLine(webBrowser.Source.ToString());
            sr.Close();
        }
 }

及以下是加载所有优惠的代码

private List<string> LoadFavoirties()
    {
        List<string> history = new List<string>();
        using (IsolatedStorageFile appStorage = IsolatedStorageFile.GetUserStoreForApplication())
        {
            if (appStorage.FileExists("Browser_Favorties.txt"))
            {
                using (StreamReader reader = new StreamReader(new IsolatedStorageFileStream("Browser_Favorties.txt", System.IO.FileMode.Open, FileAccess.Read, appStorage)))
                {
                    var uri = reader.ReadLine();
                    while (!string.IsNullOrEmpty(uri))
                    {
                        history.Add(uri);
                        uri = reader.ReadLine();
                    }
                    reader.Close();
                    return history;
                }
            }
        }

        return null;
    }

希望这有帮助