Пользовательский диалог TidesDK
Я работаю над проектом TideSDK и хочу создать окно настроек конфигурации для своего приложения, но я не видел никакой документации о том, как сделать что-либо подобное на веб-сайте или какой-либо из сопроводительной документации.
Я знаком с веб-разработкой, и в браузере я бы использовал target = new (или что-то в этом роде), чтобы указать, что я хочу, чтобы URL открывался в новом окне, но я не видел ничего подобного в приливе.
Я также пытался использовать функции диалога приливов, но похоже, что окна будут относиться только к HTML-файлам, которые находятся в каталоге приложений (то есть он не будет встроен или упакован с приложением).
Доступна ли эта функция в tidsdk, или мне нужно будет найти альтернативный способ сделать окно настроек / конфигурации?
1 ответ
Я посмотрел в диалоговые функции и нашел способ делать именно то, что вы хотите! Документация по 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"]
,