【问题标题】:How are normal people supposed to persist settings in a Windows Phone 8 app?普通人应该如何在 Windows Phone 8 应用程序中保留设置?
【发布时间】:2012-11-26 04:48:17
【问题描述】:

我正在编写一个 Windows Phone 8 应用程序,因此我可以抢占 3% 的市场份额,但我很难在应用程序中保持用户设置。

我第一次遇到this blog,它介绍了 Windows.Storage 命名空间的基础知识,它旨在完成这类事情。耶!

然而,我猜作者从未真正运行他自己的代码,否则他会知道你第二次调用ApplicationData.Current.LocalSettings,你会得到一个NotImplementedException 异常。 To the MSDNs we go!

嗯,这很清楚地表明这个 API 没有在 Windows Phone 8 上实现。当它说“这个 API 没有实现,如果调用会抛出异常”时,我得出了这个结论。 - 那太好了。

所以,也许还有其他一些类似的 API。经过一番谷歌搜索后,我遇到了this blog。它被称为“Windows 8 应用程序 - 必须知道的技巧!”。这看起来很官方!它涵盖了各种非常酷的持久性 API,包括永久和临时存储、漫游存储等。

但你猜怎么着:RoamingFolderRoamingSettingsTemporaryFolderLocalSettings - 这些都没有在 Windows Phone 8 上实现。

实现这些有点关键的功能只是让他们忘记了吗?我应该创建一个本地 SQL 数据库来存储基本的应用程序设置,还是我找不到一些简单的东西?

【问题讨论】:

  • “普通人”ಠ_ಠ

标签: c# windows-8 windows-phone-8


【解决方案1】:

啊哈!想通了。我翻出了 Windows Phone 7 API 文档,旧版 API 实际上仍然可以在 Windows Phone 8 上运行。

public static void Session_PersistSession(string ticket)
{
   if (IsolatedStorageSettings.ApplicationSettings.Contains("SessionTicket"))
   {
      IsolatedStorageSettings.ApplicationSettings["SessionTicket"] = ticket;
   }
   else
   {
      IsolatedStorageSettings.ApplicationSettings.Add("SessionTicket", ticket);
   }

   IsolatedStorageSettings.ApplicationSettings.Save();
}

public static string Session_LoadSession()
{
   string ticket;
   if (IsolatedStorageSettings.ApplicationSettings.TryGetValue<String>("SessionTicket", out ticket))
   {
      return ticket;
   }

   return null;
}

【讨论】:

  • 幸好他们用“统一”的 WinRT 风格 API 交换了这个......哦等等!
  • 你找到的IsolatedStorageSettings,它会漫游数据吗?在 Windows Phone 8 应用和 Windows 8 应用之间共享数据会很棒。
  • @Christian80 - 不,不漫游。一个漫游存储提供程序,但当然它还没有在 Windows Phone 上实现。所以我猜漫游只适用于平板电脑和台式电脑?这真是太可惜了,因为在移动应用程序上漫游也很酷。我想知道 MS 计划什么时候实现这些东西..
【解决方案2】:

这里有几个选项....

  1. 支持LocalFolder,因此您可以将所需的任何状态序列化到那里的文件中。
  2. 查看IsolatedStorageSettings 类,特别是ApplicationSettings 属性

这可能会提供更多上下文:How to preserve and restore app state for Windows Phone

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-25
    • 2023-03-26
    相关资源
    最近更新 更多