Согласно документации, currentWindow
был удален вместе с свойством Titanium.UI.Window.url
для загрузки файлов JavaScript в их собственных контекстах. Я успешно удалил ссылки URL, используя require()
.
Я унаследовал проект, который ссылается на currentWindow
для управления различными ресурсами страницы, например:
var thisWindow = Titanium.UI.currentWindow;
// var thisWindow = Ti.UI.currentWindow; - also doesn't work
var nav = Titanium.UI.iOS.createNavigationWindow({
window: thisWindow
});
thisWindow.nav = nav;
nav.open();
var detailWindow = Ti.UI.createWindow({
backgroundColor: '#fff',
backButtonTitle: '',
navTintColor: '#FFF',
barColor: '#222222',
getURL: 'http://google.com',
titleControl: Ti.UI.createLabel({
//text: 'TITLE',
color: '#FFF',
font: {
fontSize: 16,
fontWeight: 'bold'
}
})
});
detailWindow = require('details');
// add the detail to the nav window
detailWindow.nav = thisWindow.nav;
Вот содержимое details.js:
var window = Ti.UI.currentWindow;
var website = window.getURL;
var webview = Titanium.UI.createWebView({
backgroundColor:"#fff",
url:website
});
window.add(webview);
И поскольку это больше не поддерживается, я получаю сообщение об ошибке:
undefined is not an object (evaluating 'thisWindow.nav=nav')
Как обновить этот метод (в идеале без огромного переписывания, так как есть много страниц и связанных с ним страниц).
Спасибо!
Вы можете использовать структуру commonjs.
Если вам нужно передать окно из одного файла в другой, предоставьте его с помощью сеттеров.
// main.js
var details = require('details');
details.setWindow(myWindowVar);
// details.js
var window;
exports.setWindow = function(win){
window = win;
}
Другое дело, используя, конечно, работу aso.
// details.js
exports.window = window;
// main.js
detailWindow = require('details').window;
Имейте в виду, что при использовании require
он был загружен в память. Когда требуется повторное использование позже, вы делаете одно и то же, оно не будет воспроизводиться. Если вы хотите, чтобы вам нужно было создавать функции, которые его создают, и запускать их.
//details.js
function createWindow(){
var win = Ti.UI.createWindow();
return win;
}
myWindowVar
?