0

我正在使用钛合金并开发与厨房水槽相同的选项卡式应用程序

我的主页选项卡从 json 文件加载 html 数据这是代码,

HomeContent.js

function HomeWindow(title) {
var self = Ti.UI.createWindow({
    title:title,
    backgroundColor:'white'
});
var fileName = 'includes/HomeContent.json';
var file = Titanium.Filesystem.getFile(Titanium.Filesystem.resourcesDirectory, fileName);
var preParseData = (file.read().text);
var response = JSON.parse(preParseData);
var content = response[0].content;
var webview = Titanium.UI.createWebView({data:content});
self.add(webview);
return self;
};

module.exports = HomeWindow;

它在第一次工作时再次单击它不会再次调用特定的 HTML。

更多参考这是我的标签生成代码,我不认为它会产生任何问题,

var homewindowWin = new HomeWindow(L('HomeContent'));
var homeTab = Ti.UI.createTab({
    title: L('Home'),
    icon: '/images/tabs/KS_nav_ui.png',
    window: homewindowWin
});
homewindowWin.containingTab = homeTab;
self.addTab(homeTab);

坚持任何帮助将不胜感激。

4

1 回答 1

0

我通过再次分配 webview 的选项卡的加载事件解决了这个问题,请参见下面的编辑代码,

function HomeWindow(title) {
var self = Ti.UI.createWindow({
    title:title,
    backgroundColor:'white'
});

 var fileName = 'includes/HomeContent.json'; 
 var file = Titanium.Filesystem.getFile(Titanium.Filesystem.resourcesDirectory,   fileName);    
 var preParseData = (file.read().text); 
 var response = JSON.parse(preParseData); 
 var content = response[0].content;
 var webview = Titanium.UI.createWebView({data:content});
 var counter = 0;
 webview.addEventListener('load', function(e) {
     counter++;
        if ( counter > 1 ) {
            self.remove(webview);
            webview = null;
            fileName = 'includes/HomeContent.json'; 
             file = Titanium.Filesystem.getFile(Titanium.Filesystem.resourcesDirectory, fileName);    
             preParseData = (file.read().text); 
             response = JSON.parse(preParseData); 
             content = response[0].content;
        }
        var webview = Titanium.UI.createWebView({data:content});
            self.add(webview);
        });
 self.add(webview);
 return self;
 };

 module.exports = HomeWindow;
于 2013-08-16T10:01:08.717 回答