【问题标题】:json response is not open in new windowjson 响应未在新窗口中打开
【发布时间】:2013-12-19 11:41:00
【问题描述】:

我想在新窗口中打开json响应,我尝试了很多但没有获得ant成功,如果有人可以帮助我,将不胜感激。

这是我的 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");
    }
});

我是钛新手,如果任何人可以帮助我,将不胜感激,并提前百万吨感谢。

【问题讨论】:

    标签: javascript titanium titanium-mobile


    【解决方案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 并在每次保存时检查您的代码。

    【讨论】:

    • 谢谢老兄,它现在可以工作了,我知道我会在哪里出错。
    猜你喜欢
    • 2014-03-24
    • 1970-01-01
    • 1970-01-01
    • 2017-03-29
    • 2014-12-06
    • 2014-02-02
    • 1970-01-01
    • 2010-11-07
    • 1970-01-01
    相关资源
    最近更新 更多