2015-09-17 25 views
6

Tôi vừa nâng cấp ứng dụng của mình lên Xcode 7/Swift 2.0 và tôi đang gặp khó khăn với Đăng nhập Facebook thông qua AppSwitch. Tôi đang sử dụng FBSDK mới nhất (4.6) và đã làm mọi thứ theo số upgrade guide. Tuy nhiên, trên iOS9 đăng nhập Facebook xảy ra thông qua trình duyệt trong ứng dụng, appswitch không hoạt động nữa. Tôi cũng đã cố gắng thiết lập loginbehavior nhưng không có may mắn:Mặc định FBSDKLoginBehavior.Native không hoạt động trên iOS 9

let manager = FBSDKLoginManager() 
manager.loginBehavior = FBSDKLoginBehavior.Native 
manager.logInWithReadPermissions(facebookReadPermissions, fromViewController: nil, handler: { (loginResult, error) -> Void in 

Tôi có thể làm gì để làm cho appswitch hoạt động trở lại?

Cảm ơn!

Trả lời

9

Hóa ra rằng đây không phải là một vấn đề nhưng hành vi mong muốn mới theo những bài viết từ Facebook:

https://developers.facebook.com/bugs/1636969533209725/?comment_id=1011596265571252

Hành vi này là do thiết kế. Trong SDK iOS mới nhất của chúng tôi, hành vi đăng nhập hiện được kiểm soát ở phía máy chủ để đảm bảo trải nghiệm người dùng tốt nhất.

https://developers.facebook.com/bugs/786729821439894/?comment_id=1467419033584031

Bởi vì những thay đổi được giới thiệu trong iOS 9, hành vi mới này tránh người dùng được yêu cầu nếu họ muốn đi và mở ứng dụng Facebook, chấp nhận các điều khoản/share/vv, và sau đó hỏi một lần nữa nếu họ muốn chuyển về ứng dụng của bạn.

https://developers.facebook.com/bugs/1390559277910338/?comment_id=1661064587442645

xác thực hệ thống không cung cấp cho người kiểm soát các thông tin mà họ chia sẻ với các ứng dụng. Và trong iOS 9, chuyển đổi ứng dụng nhanh sang ứng dụng gốc của Facebook dẫn đến các hộp thoại bổ sung ("ExampleApp muốn mở Facebook") xuất hiện hai lần - một lần trên đường từ ExampleApp lên Facebook và một lần nữa trên hành trình trở về. Chúng tôi tin rằng hành vi SDK mặc định trong v4.6 trên iOS 9 mang đến trải nghiệm tốt nhất cho những người đăng nhập vào ứng dụng của bạn bằng Facebook.

+3

Vậy tại sao sau đây vẫn được bao gồm trong SDK -> loginManager.loginBehavior = FBSDKLoginBehavior.Native. – TYRONEMICHAEL

+0

nó được sử dụng trên iOS <9 – zxcat

0

Bạn có thể vá mã nguồn FacebookSDK để sử dụng Chuyển đổi ứng dụng nhanh.

Phần thú vị (đối với thẻ 4.6) là trong tập tin FBSDKCoreKit/Internal/ServerConfiguration/FBSDKServerConfigurationManager.m

+ (FBSDKServerConfiguration *)_defaultServerConfigurationForAppID:(NSString *)appID 
{ 
    … 
    BOOL useNativeFlow = ![FBSDKInternalUtility isOSRunTimeVersionAtLeast:iOS9Version]; 

Như bạn có thể thấy, nó tắt luồng bản địa trên iOS9 +.
Thay đổi dòng thành một cái gì đó như BOOL useNativeFlow = YES; sẽ hoạt động.

P.S. Tôi chưa tự kiểm tra bản vá này.

+0

không hoạt động, nhưng tôi nghĩ rằng điều này sẽ hoạt động. Tôi đang thêm "fbapi" vào Lược đồ URL –

Các vấn đề liên quan