2016-06-15 13 views
0

私は画面にGoogleとFacebook用の2つのカスタムサインインがあります。ここで私はここでOKボタンをクリックした後に、このコードを記述する場合、私はコードFacebookとGoogleはSwiftでサインインします

func application(application: UIApplication, openURL url: NSURL, sourceApplication: String?, annotation: AnyObject) -> Bool { 
     FBSDKApplicationDelegate.sharedInstance().application(application, openURL: url, sourceApplication: sourceApplication, annotation: annotation) 



     return true 
    } 
    func application(application: UIApplication, 
     openURL url: NSURL, options: [String: AnyObject]) -> Bool { 
      if #available(iOS 9.0, *) { 
       return GIDSignIn.sharedInstance().handleURL(url, 
        sourceApplication: options[UIApplicationOpenURLOptionsSourceApplicationKey] as? String, 
        annotation: options[UIApplicationOpenURLOptionsAnnotationKey]) 
      } else { 
       // Fallback on earlier versions 
      } 

      return true 
    } 

後に説明します問題が発生するAppDelegateで書かれた私のコードは次のとおりです。

enter image description here

画面のdoesnそれを閉じてそこにとどまる。しかし、「許可」ボタンをクリックすると、Googleの画面は完全に機能します。しかし、私はこのコードを使用する場合:

func application(application: UIApplication, openURL url: NSURL, sourceApplication: String?, annotation: AnyObject) -> Bool { 
      FBSDKApplicationDelegate.sharedInstance().application(application, openURL: url, sourceApplication: sourceApplication, annotation: annotation) 



      return true 
     } 

そして、Facebookの "OK"ボタンは正常に動作します。なぜこの機能を追加してもFacebookが動作しないのですか?

func application(application: UIApplication, 
      openURL url: NSURL, options: [String: AnyObject]) -> Bool { 
       if #available(iOS 9.0, *) { 
        return GIDSignIn.sharedInstance().handleURL(url, 
         sourceApplication: options[UIApplicationOpenURLOptionsSourceApplicationKey] as? String, 
         annotation: options[UIApplicationOpenURLOptionsAnnotationKey]) 
       } else { 
        // Fallback on earlier versions 
       } 

       return true 
     } 
+0

http://stackoverflow.com/questions/35594702/google-sign-in-for-ios-error-cannot-subscript-a-value-of- type-string-anyob/35594731#35594731 –

+0

@ EICaptainv2.0答えを適用した後でも解決できないので質問を更新してもよいですか – hellosheikh

答えて

2

このソリューションは、私にとって

func application(application: UIApplication, 
    openURL url: NSURL, options: [String: AnyObject]) -> Bool { 

     return FBSDKApplicationDelegate.sharedInstance().application(application, openURL: url, sourceApplication: options[UIApplicationOpenURLOptionsSourceApplicationKey] as! String, annotation: nil) || 
      GIDSignIn.sharedInstance().handleURL(url, 
      sourceApplication: options[UIApplicationOpenURLOptionsSourceApplicationKey] as? String, 
      annotation: options[UIApplicationOpenURLOptionsAnnotationKey] as? String) 
} 

iOS Facebook and Google login at the same time?

1
func application(application: UIApplication, openURL url: NSURL, sourceApplication: String?, annotation: AnyObject) -> Bool 
{ 
    return FBSDKApplicationDelegate.sharedInstance().application(application, openURL: url, sourceApplication: sourceApplication, annotation: annotation) 
} 

//動作します、それは置いた作品(または)GIDSignInフラグ値のための条件のint return文だ場合、最初にこの条件をテストしてくださいは、

0

Swift 3.0の以下の機能は、iOS 8.0以上で動作します。以前のバージョンの

//フォールバック

func application(application: UIApplication, openURL url: NSURL, sourceApplication: String?, annotation: AnyObject) -> Bool { 

    return (FBSDKApplicationDelegate.sharedInstance().application(application,openURL: url,sourceApplication: sourceApplication,annotation: annotation) || GIDSignIn.sharedInstance().handleURL(url, sourceApplication: sourceApplication, annotation: annotation)) 
} 
関連する問題