2015-10-12 17 views
7

Tôi đang cố gắng để tích hợp facebook và google đăng nhập vào ứng dụng của tôi, nhưng có một vấn đề: Cả hai yêu cầu sau đây để được bổ sung vào phương pháp openURL trong appdelegate:Tích hợp Google và Facebook đăng nhập trong iOS - appdelegate openURL

return [GIDSignIn sharedInstance] handleURL:url 
          sourceApplication:sourceApplication 
             annotation:annotation]]; 

return [FBSDKApplicationDelegate sharedInstance] application:application 
                 openURL:url 
              sourceApplication:sourceApplication 
                annotation:annotation 
     ]] 

Có cách nào để cả hai đều hoạt động đúng cách. Tôi đã nhìn trực tuyến, nhưng câu trả lời là khá mơ hồ và không cung cấp một lời giải thích tốt

Giải pháp

gia tăng sau đó đã làm các trick cho tôi (như iOS 9):

return [[GIDSignIn sharedInstance] handleURL:url sourceApplication:sourceApplication annotation:annotation] || [[FBSDKApplicationDelegate sharedInstance] application:application openURL:url sourceApplication:sourceApplication annotation:annotation ]; 
+0

Phân tích cú pháp URL được gửi trong phương thức ủy quyền 'canOpenURL'. –

+0

Xin lỗi, tôi không hiểu ý bạn là gì? – user1686342

+0

Như được trả lời bởi Maulik, URL mà bạn đang nhận được trong phương thức ủy nhiệm, phải khác nhau. Chỉ cần đăng nhập để xem sự khác biệt. Bạn cũng nên thử cách câu trả lời của Maulik. –

Trả lời

4

sử dụng sau mã ...

- (BOOL)application:(UIApplication *)applicationopenURL:(NSURL *)url 
     sourceApplication:(NSString *)sourceApplicationannotation:(id)annotation 
    { 
     if ([FBAppCall handleOpenURL:url sourceApplication:sourceApplication]) 
     return [FBSDKApplicationDelegate sharedInstance] application:application 
                 openURL:url 
              sourceApplication:sourceApplication 
                annotation:annotation 
     ]]; 
     else 

     return [GIDSignIn sharedInstance] handleURL:url 
          sourceApplication:sourceApplication 
             annotation:annotation]]; 
    } 

câu trả lời khác ..

01.
- (BOOL)application:(UIApplication *)applicationopenURL:(NSURL *)url 
    sourceApplication:(NSString *)sourceApplicationannotation:(id)annotation 
{ 

    NSString *stringURL = [ url absoluteString]; 
    if([stringURL containsString:@"fb"]) 
    { 


    return [[FBSDKApplicationDelegate sharedInstance] application:application 
                  openURL:url 
               sourceApplication:sourceApplication 
                 annotation:annotation]; 
    } 
    else 
    { 
     return [GPPURLHandler handleURL:url 
         sourceApplication:sourceApplication 
          annotation:annotation]; 

    } 
} 
+0

Mã đó đã lỗi thời ... Tôi đã thấy điều này trên một câu trả lời trước đó không may đã không giải quyết được vấn đề của tôi: ( – user1686342

+0

đã nhận được hay không ... –

+0

Tôi đã sử dụng mã sau đây (được thêm vào bài đăng đầu tiên) sự khôn ngoan của bạn đã dẫn tôi đến câu trả lời :) – user1686342

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