在Titanium for ios中获取有关当前用户的信息时出错

时间:2012-10-31 11:01:24

标签: titanium appcelerator titanium-mobile appcelerator-mobile

我开发了一个应用程序,它有一个登录到应用程序的屏幕。我需要在主页面显示当前用户的详细信息。我第一次登录应用程序时效果很好。但是我收到了一个错误:您需要在登录前注册或注册,当我尝试在注销后再次登录时。 android os中没有相同代码的问题

以下是示例代码

var win = Ti.UI.createWindow({
    backgroundColor : '#520000'
});

var btnLogin = Ti.UI.createButton({

    title   : 'Login',
    top     : '20%',
    width   : '50%'
});
var Cloud = require('ti.cloud');

win.add(btnLogin);
win.open();

btnLogin.addEventListener('click', Login);

function Login(){

    Cloud.Users.login({
        login: 'anand@gmail.com',
        password: 'anandt'
    }, function (e) {
        if (e.success) {
            var user = e.users[0];  
            var mainWin = Ti.UI.createWindow({
                backgroundColor : '#005200',
                url             : 'logout.js'
            });

            mainWin.open();

        } else {
            alert('Error: ' + ((e.error && e.message) || JSON.stringify(e)));
        }
});
}

申请主页

var Cloud = require('ti.cloud');

var logoutWin = Ti.UI.currentWindow;

var btnLogout = Ti.UI.createButton({    
    title   : 'Logout',
    top     : '20%',
    width   : '50%'
});

logoutWin.add(btnLogout);
logoutWin.addEventListener('open', function(){
    Cloud.Users.showMe(function (e) {
        if (e.success) {
            var user = e.users[0];
            alert('user is ' + 'first name: ' + user.first_name + ' ' + 'last name: ' + user.last_name);
        } else {
            alert('Error: ' + ((e.error && e.message) || JSON.stringify(e)));
        }
    });
});
btnLogout.addEventListener('click', Logout);


function Logout()
{
    Cloud.Users.logout(function (e) {
        if (e.success) {
            logoutWin.close();
        } else {
            alert('Error: ' + ((e.error && e.message) || JSON.stringify(e)));
        }
    });
}

这是用户首次登录后没有任何注销

的屏幕

This is the screen showing after the user logged in for the first time without any logout

此屏幕显示用户使用一次或多次注销登录后(无需重新启动应用) This is the screen showing after the user logged in with one or more logout(without restarting the app)

任何帮助将不胜感激

1 个答案:

答案 0 :(得分:1)

使用URL加载窗口会导致会话ID在上下文之间被破坏。不要使用网址。