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

本文关键字:历史 添加 记录 功能 收藏夹 应用程序 Windows Phone 网页 | 更新日期: 2023-09-27 18:07:12

我正在为Windows Phone 8构建一个web浏览器。现在我已经完成了后退,前进,刷新等基本操作,但是我想再增加两个功能使它更完整。

首先是历史记录功能,记录访问过的网页的历史记录,并在被要求时显示。

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

我发现了一些有用的东西,但它是为wpf,没有工作,所以谁能告诉我一步一步的代码或例子做什么?如果需要,我也可以发布示例代码。

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

1。导航历史

处理Navigated事件的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;
    }

希望能有所帮助