最近,我們得到了我們的iOS應用程序被拒絕,因爲以下的拒絕:iOS應用上使用AWS cognito實現從移動樞紐
我們注意到,用戶被引導到Safari瀏覽器登錄或註冊一個帳戶,這提供了糟糕的用戶體驗。
然而,啓動Safari窗口對於Facebook /谷歌登錄該位是AWSMobileHubHelper框架的一部分,所以我們不能修改代碼。
任何想法/解決方案將不勝感激。
最近,我們得到了我們的iOS應用程序被拒絕,因爲以下的拒絕:iOS應用上使用AWS cognito實現從移動樞紐
我們注意到,用戶被引導到Safari瀏覽器登錄或註冊一個帳戶,這提供了糟糕的用戶體驗。
然而,啓動Safari窗口對於Facebook /谷歌登錄該位是AWSMobileHubHelper框架的一部分,所以我們不能修改代碼。
任何想法/解決方案將不勝感激。
從使用Facebook SDK的iOS 9開始,這是每個Facebook登錄的預期行爲。 Mobile Hub quickstart應用程序只是應用Facebook SDK 3並按照指示使用API。查看下面的簡要說明並閱讀評論以獲得更好的見解。這不是Facebook的熱門決定,如果你想實驗,其他人已經提供瞭解決方法(通過移動瀏覽器強制用戶驗證)。至於AWSMobileHubHelper框架,我們正在考慮在某些時候提供這個功能,但沒有時間表。
「自動將人員默認爲iOS 9最佳體驗的邏輯。這意味着Facebook登錄,Facebook和Messenger,應用程序邀請,應用程序事件或Native Like之間的SDK對話將自動決定最佳體驗人們基於他們的設備。「
來源: https://developers.facebook.com/blog/post/2015/09/10/new-SDK-for-iOS9/
於是我找到了一個解決方法。我只需抓住GIDSignIn實例並自己更改屬性。如果任何其他人想知道怎麼了,你要做的是:
#import <GoogleSignIn/GoogleSignIn.h>
func signIn(signIn: GIDSignIn!, presentViewController viewController: UIViewController!) { presentViewController(viewController, animated: true, completion: nil) }
func loginWithGoogle(delegate: GIDSignInUIDelegate!) { let googleProvider = AWSGoogleSignInProvider.sharedInstance() // It is important that these are initialized after // AWSGoogleSignInProvider.sharedInstance() is called GIDSignIn.sharedInstance().uiDelegate = delegate GIDSignIn.sharedInstance().allowsSignInWithBrowser = false GIDSignIn.sharedInstance().allowsSignInWithWebView = true handleLoginWithSignInProvider(googleProvider, callback: callback) }
感謝您的回覆。但問題不在於Facebook SDK 3。這是關於AWSMobileHubHelper提供的Facebook/Google登錄的默認行爲。 Google SDK 3(與mobilehub捆綁在一起)提供了在Web視圖中啓動登錄頁面的方法(通過allowSignInWithWebView),但AWS幫助程序選擇在Safari中啓動,而不是將allowSignInWithBrowser設置爲true。不用說,如果內置的AWSMobileHub功能導致您的應用在應用商店被拒絕......那麼這是一個問題... – xaksis