SDK 2:设置对话框示例

SDK 2: Example of a settings dialog

本文关键字:对话框 设置 SDK      更新时间:2023-09-26

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

我最终使用ExtJS CookieProvider来保存我的应用程序的状态。通过使用cookie,设置是按用户设置的,我也按项目设置。我在应用程序类中的代码如下:

...
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,除非您告诉它。

简单的答案是,现在这是不可能的。

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

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

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