0

您是否发布了一个 SDK 2 应用程序的示例,该应用程序将一个条目添加到其“齿轮”菜单并允许用户通过对话窗口将设置保存到首选项对象?

4

2 回答 2

2

我最终使用 ExtJS CookieProvider 来保存我的应用程序的状态。通过使用 cookie,设置是针对每个用户的,我也针对每个项目进行设置。我在 App 类中的代码如下所示:

...
sessionKey: function() {
  return (this.getContext().get('appID') || 'MyAppName') + ':' + this.getContext().getProject()._ref;
},

session: function() {
  if (!this.state)
    this.state = Ext.state.Manager.get(this.sessionKey()) || {};

  return this.state;
},

saveSession: function(newState) {
  var session = this.session();
  Ext.apply(session, newState);
  Ext.state.Manager.set(this.sessionKey(), session);
},

launch: function() {
   Ext.state.Manager.setProvider(Ext.create('Ext.state.CookieProvider'));
   ...

要使用它,只需调用 this.session() 来获取状态,然后调用 saveSession() 来合并状态。效果很好!

它甚至可以在开发模式下工作。请注意,Chrome(和其他浏览器?)不会在 file:// 模式下保存 cookie,除非您告诉它.

于 2012-11-09T23:14:53.633 回答
1

简短的回答是,目前这是不可能的。

我们正在尝试找出允许用户从自定义应用程序内部与设置进行交互的最佳方式。由于每个应用程序都在 IFrame 内进行沙盒处理,因此任何应用程序代码都无法与齿轮菜单交互(因为它位于框架之外)。

未来,我们正在寻找使自定义应用程序和拉力赛应用程序以统一方式与设置交互的方法。

如果您正在寻找存储设置,您可以查看App对象的文档。在 SDK 的 2.0p2 版本中,我们添加了一些功能来帮助您管理应用程序的设置。现在,所有自定义应用程序都必须提供自己的界面来访问设置。

于 2012-07-08T23:27:56.307 回答