Tôi đang sử dụng SDK Facebook v4.8.0 cho iOS trong ứng dụng của tôi để đăng nhập bằng Facebook. (IPhone OS phiên bản 9.3)Trình xử lý không được gọi sau khi Đăng nhập Trình duyệt Facebook chuyển hướng đến Ứng dụng
Sau đây là một số mã có liên quan để tổng hợp:
AppDelegate.swift
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
FBSDKApplicationDelegate.sharedInstance().application(application, didFinishLaunchingWithOptions: launchOptions)
return true
}
func applicationDidBecomeActive(application: UIApplication) {
FBSDKAppEvents.activateApp()
}
func application(application: UIApplication, openURL url: NSURL, sourceApplication: String?, annotation: AnyObject) -> Bool {
return FBSDKApplicationDelegate.sharedInstance().application(application, openURL: url, sourceApplication: sourceApplication, annotation: annotation)
}
func application(application: UIApplication, openURL url: NSURL, options: [String: AnyObject]) -> Bool {
return FBSDKApplicationDelegate.sharedInstance().application(application, openURL: url,
sourceApplication: "UIApplicationOpenURLOptionsSourceApplicationKey",
annotation: "UIApplicationOpenURLOptionsAnnotationKey")
}
Login.Swift
@IBAction func btnFacebook(sender: UIButton) {
self.loginToFacebookWithSuccess({ (response) -> Void in
print("Success")
}) { (error) -> Void in
print("failure")
}
func loginToFacebookWithSuccess(successBlock:() ->(), andFailure failureBlock: (NSError?) ->()) {
let fbLoginManager : FBSDKLoginManager = FBSDKLoginManager()
fbLoginManager.loginBehavior = .SystemAccount
FBSDKLoginManager().logInWithReadPermissions(["public_profile", "email", "user_friends"], fromViewController: self, handler: { (result:FBSDKLoginManagerLoginResult!, error:NSError!) -> Void in
if error != nil {
print("error")
} else if result.isCancelled {
print("cancelled")
} else {
print("worked fine") // get Facebook user data here
}
})
}
Khi người dùng có không được cấu hình tài khoản Facebook trên thiết bị, ứng dụng sẽ chuyển sang trình duyệt và cung cấp Khuôn mặt giao diện người dùng đăng nhập sách. Một lần, người dùng được thực hiện với đăng nhập Trình duyệt chuyển hướng đến Ứng dụng. Cho đến thời điểm này mọi thứ hoạt động tốt.
Vấn đề
Khi trình duyệt chuyển hướng người dùng đến ứng dụng, không có gì xảy ra. (Không xử lý cho sự thành công hoặc thất bại được gọi). Chỉ trong trường hợp người dùng chạm vào "Xong" trong trình duyệt, "đã hủy" được in trong nhật ký. Tuy nhiên, đối với "hủy" hoặc "không sao" (hoặc nói "Tiếp tục với tên người dùng"), không có gì xảy ra sau khi chuyển hướng.
Bất kỳ đầu mối nào?
Hãy cho tôi biết, nếu tôi đã bỏ sót bất kỳ thông tin nào.
Ứng dụng FB đang trong quá trình phát triển hoặc sản xuất? Người dùng bạn đang sử dụng được thêm làm người thử nghiệm? Bạn đặt điểm phá vỡ trên tất cả các phương pháp đại biểu? – Wain
@Wain Đang phát triển. Tôi đang sử dụng nó như một nhà phát triển (XCode gỡ lỗi trên thiết bị). Có, đã thử đặt điểm ngắt trên tất cả các phương thức đại biểu. Trình xử lý không được gọi trong trường hợp "Hủy" hoặc "OK". Khi tôi gõ vào "Done" (nút trên cùng bên trái trong cửa sổ safari thiết bị) các đại biểu được gọi. = result.isCancelled – viral