Appcelerator facebook 登录按钮事件不适用于 alloy

Appcelerator facebook login button events not working with alloy

我正在使用带有 appcelerator titanium 的 alloy 框架,并且这样做了:

alloy.js

Alloy.Globals.Facebook = require('facebook');
Alloy.Globals.Facebook.permissions = ['public_profile'];

index.js

Alloy.Globals.Facebook.addEventListener('login', function(e) {
    if (e.success) {
        Ti.API.info("VALID FACEBOOK LOGIN");

        var token = Alloy.Globals.Facebook.accessToken;
        Ti.API.info("*** fb accessToken: "+token);

    }
    else{
        Ti.API.info("FAILED FACEBOOK LOGIN...");
    }
});

index.xml

<LoginButton id="fbButton" module="facebook" />

当我尝试使用按钮登录时,登录正常,但 facebook 按钮变为 "logout"。然而,没有登录事件被触发并且 index.js 中的 evenlistener 永远不会得到任何东西。

这是什么原因造成的?我应该以其他方式添加事件列表吗?

iOS 在设备 9.3.1 上 钛 SDK 5.2.2.GA

我想你忘了添加这条指令:

Alloy.Globals.Facebook.authorize();

作为一个丑陋的解决方法,直到事件得到修复,我只是添加了一个 setInterval 来轮询 Alloy.Globals.Facebook.loggedIn 是否为真,然后执行应该在事件处理程序中的适当代码...

正如之前对该问题的评论中所指出的,该模块未初始化。将 initialize() 行添加到我的 alloy.js 似乎解决了问题,现在我收到了登录事件。

在alloy.js

Alloy.Globals.Facebook = require('facebook');
Alloy.Globals.Facebook.permissions = ['public_profile'];
Alloy.Globals.Facebook.initialize();

将应用提交到应用商店后,由于某些原因,审阅者无法获得任何事件...这真的很糟糕。它在我的模拟器和我的设备上工作,但在他们测试时不适用于提交的应用程序...

真的不知道该怎么办...