我想在新窗口中打开json响应,我尝试了很多但没有获得成功,如果有人可以帮助我,我们将不胜感激。
这是我的app.js代码
Titanium.UI.setBackgroundColor('#fff');
var tabGroup = Titanium.UI.createTabGroup();
var login = Titanium.UI.createWindow({
title:'User Authentication Demo',
tabBarHidden:true,
url:'main_windows/login.js'
});
var loginTab = Titanium.UI.createTab({
title:"Login",
window:login
});
tabGroup.addTab(loginTab);
tabGroup.open();
这是我的login.js代码
var win = Titanium.UI.currentWindow;
var UserLogin = Titanium.UI.createTextField({
color:'#336699',
top:10,
left:10,
width:300,
height:40,
hintText:'UserLogin',
keyboardType:Titanium.UI.KEYBOARD_DEFAULT,
returnKeyType:Titanium.UI.RETURNKEY_DEFAULT,
borderStyle:Titanium.UI.INPUT_BORDERSTYLE_ROUNDED
});
win.add(UserLogin);
var UserPassword = Titanium.UI.createTextField({
color:'#336699',
top:60,
left:10,
width:300,
height:40,
hintText:'UserPassword',
passwordMask:true,
keyboardType:Titanium.UI.KEYBOARD_DEFAULT,
returnKeyType:Titanium.UI.RETURNKEY_DEFAULT,
borderStyle:Titanium.UI.INPUT_BORDERSTYLE_ROUNDED
});
win.add(UserPassword);
var loginBtn = Titanium.UI.createButton({
title:'Login',
top:110,
width:90,
height:35,
borderRadius:1,
font:{fontFamily:'Arial',fontWeight:'bold',fontSize:14}
});
win.add(loginBtn);
/*
* Login Event Handling
*/
var loginReq = Titanium.Network.createHTTPClient();
var data, User, UserName, UserEmail, UserFirstName, UserLastName, UserAvatar, BioGraphyNative,BioGraphyEnglish,UserPhone,CreatedOn;
loginReq.onload = function() {
var json = this.responseText;
var response = JSON.parse(json);
var message = response.message;
var code = response.code;
if (response.data == null) {
alert("Message " + message + "code " + code);
} else {
var win1 = Titanium.UI.createWindow();
win1.open();
User = response.data.User;
UserName = User.UserLogin;
UserEmail = User.UserEmail;
UserFirstName = User.UserFirstName;
UserLastName = User.UserLastName;
UserAvatar = User.UserAvatar;
BioGraphyNative = User.BioGraphyNative;
BioGraphyEnglish = User.BioGraphyEnglish;
UserPhone = User.UserPhone;
CreatedOn = User.CreatedOn;
alert("UserName " + UserName + "UserEmail " + UserEmail);
}
};
loginReq.onerror = function() {
alert("Network error");
};
/*
* Login Button Click Event
*/
loginBtn.addEventListener('click',function(e) {
if (UserLogin.value !== '' && UserPassword.value !== '') {
var win1 = Titanium.UI.createWindow();
loginReq.open("POST", "url");
var params = {
UserLogin: UserLogin.value,
UserPassword: UserPassword.value
};
loginReq.send(params);
} else {
alert("Username/Password are required");
}
});
我是钛的新手,我可以帮助我,我会非常感激,并提前感谢万吨。
答案 0 :(得分:1)
您的窗口对象已创建,但它是空的并且具有透明背景,因此您在屏幕上看不到它。
您可以将onload
更改为此:
loginReq.onload = function() {
var json = this.responseText;
var response = JSON.parse(json);
var message = response.message;
var code = response.code;
if (response.data == null) {
alert("Message " + message + "code " + code);
} else {
var win1 = Titanium.UI.createWindow({
backgroundColor: 'white',
layout: 'vertical',
});
var User = response.data.User;
for (var i in User) {
win1.add(Ti.UI.createLabel({ text: User[i] });
}
win1.open();
}
};
另请注意JavaScript问题,例如在没有var语句的情况下声明变量。始终使用并尝试将所有声明放在函数的开头。为了保持监控,安装JSHint或JSLint并在每次保存时检查代码都很好。