Titanium - логин Facebook не отображается на устройстве

Я пытаюсь создать логин через Facebook, используя модули Facebook, которые поставляются в рамках Titanium.

Когда я нажимаю кнопку на эмуляторе iphone, я получаю экран входа в Facebook. Но при установке на устройство я не получаю экран входа - как будто ничего не делает (без ошибок). Я поместил предупреждение, чтобы увидеть, что это место кода вызывается при нажатии кнопки - это происходит.

вот мой код при нажатии кнопки:

Alloy.Globals.Facebook.permissions = ['public_profile', 'user_friends', 'email', 'user_about_me', 'user_events', 'user_hometown',
        'user_likes', 'user_photos', 'user_posts', 'user_videos', 'user_tagged_places', 'user_work_history'];
Alloy.Globals.Facebook.addEventListener('login', function(e) {
    // do some stuff
}
Alloy.Globals.Facebook.initialize();
Alloy.Globals.Facebook.authorize();

Опять же - на эмуляторе работает хорошо, на устройстве не отображается логин Facebook.

1 ответ

Решение

На iOS вам нужно иметь следующее в tiapp.xml:

            <!-- Enable App Transport Security for Facebook -->
            <key>NSAppTransportSecurity</key>
            <dict>
                <key>NSExceptionDomains</key>
                <dict>
                    <key>facebook.com</key>
                    <dict>
                        <key>NSIncludesSubdomains</key>
                        <true/>
                        <key>NSExceptionRequiresForwardSecrecy</key>
                        <false/>
                    </dict>
                    <key>fbcdn.net</key>
                    <dict>
                        <key>NSIncludesSubdomains</key>
                        <true/>
                        <key>NSExceptionRequiresForwardSecrecy</key>
                        <false/>
                    </dict>
                    <key>akamaihd.net</key>
                    <dict>
                        <key>NSIncludesSubdomains</key>
                        <true/>
                        <key>NSExceptionRequiresForwardSecrecy</key>
                        <false/>
                    </dict>
                </dict>

И на Android:

        <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>
Другие вопросы по тегам