4

我正在开发一个 TideSDK 项目,我想为我的应用程序创建一个配置设置窗口,但我没有在网站或任何随附文档上看到任何关于如何执行此类操作的文档。

我熟悉 Web 开发,在浏览器中我会使用 target=new (或类似的东西)来标记我希望 url 在新窗口中打开,但我还没有看到类似的东西。

我也尝试过使用潮汐对话框功能,但看起来窗口只与位于应用程序目录中的 html 文件有关(这意味着它不会内置或与应用程序一起打包)。

tidsdk 中是否提供此功能,还是我必须找到另一种方法来制作设置/配置窗口?

4

1 回答 1

5

我查看了对话框功能,并找到了一种方法来做你想做的事!API文档对此不是很清楚,我不得不尝试...

示例代码

在主窗口中:

//Example function to apply configuration
function applyConfig(configObject){
    setSomething(configObject.field);
    ...
}
//Create a dialog, and give it the above function as an `onclose` callback:
var dialog=Ti.UI.showDialog({url:"app://config.html",onclose:applyConfig});

config.html

//An example of an object that could hold your config data
var config={field:0,example:"hello",...};
//Function to call in order to pass that object back to the main window callback:
Ti.UI.getCurrentWindow().close(config);

解释

所以...在您的主窗口中,您创建一个对话窗口Ti.UI.showDialog并传递一个回调(params.onclose见上文)。在对话框窗口中,一旦用户通过html接口设置了他的配置选项,就可以将配置数据保存在一个对象中,并传递给窗口的close方法,然后传递给主窗口中的回调.

笔记

Ti.UI.showDialog实际调用Ti.UI.createWindow,并返回一个Ti.UI.UserWindow对象,添加了一些与对话框的参数、结果和 onclose 回调相关的字段和方法。

使用或传递的对话框参数Ti.UI.showDialog({url:"...",parameters:{...}})可以从对话框窗口内部访问。Ti.UI.getCurrentWindow().getDialogParameter("name")Ti.UI.getCurrentWindow()._dialogParameters["name"]

于 2013-02-11T18:58:42.997 回答