Appcelerator Facebook模块不会触发登录事件

时间:2016-04-08 14:56:56

标签: facebook facebook-graph-api module appcelerator appcelerator-titanium

Appcelerator 5.2.0 Facebook模块(Android)在成功登录后不会触发“登录”事件。

它可能是什么?

var FB = require('facebook');
FB.initialize();
FB.permissions = ['public_profile', 'email', 'user_events'];
FB.forceDialogAuth = false;
FB.addEventListener('login', function() {
     alert('login');
});
FB.authorize();

谢谢!

1 个答案:

答案 0 :(得分:2)

Hello Oxana,

其他Android设置步骤            自Facebook模块v4.0.0起,对于Android平台,您需要:

  • 将Facebook登录活动添加到Android清单
  • 将Facebook App ID添加到Android资源string.xml文件
  • 创建Facebook代理并将其与当前有效活动相关联 (您需要)

清单:

<ti:app>
    <android xmlns:android="http://schemas.android.com/apk/res/android">
        <manifest>
            <application>
                <activity android:label="@string/app_name"
                    android:name="com.facebook.LoginActivity" android:theme="@android:style/Theme.Translucent.NoTitleBar"/>
                <meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/facebook_app_id"/>
            </application>
        </manifest>
    </android>
<ti:app>

将Facebook App ID添加到Android资源

将一个字符串元素添加到/platform/android/res/values/strings.xml文件中,其name属性设置为facebook_app_id,节点文本设置为您的Facebook App ID。如果文件不存在,请创建该文件。

<resources>
    <string name="facebook_app_id">FACEBOOK_APP_ID</string>
</resources>

**我认为这一步是你需要= D **

创建Facebook代理

使用createActivityWorker()方法创建Facebook代理。将具有lifecycleContainer属性的字典传递给方法,该属性设置为独立窗口(不包含在选项卡组中的窗口)或TabGroup的当前活动实例。在窗口或选项卡组上调用open()方法之前创建代理。

Facebook模块需要挂钩当前活动活动的生命周期事件,以便在应用程序中的各种活动之间同步其状态,例如,在用户登录或退出时更新“登录”按钮的标签。主页。

将代理附加到Window或TabGroup对象,因此不会收集垃圾。

win.fbProxy = fb.createActivityWorker({lifecycleContainer: win});

Documentation: Facebook module