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>