2012-10-07 57 views
6

在我的iPhone應用程序中,我希望用戶能夠在Facebook上共享鏈接。Facebook的SDK - iOS6登錄彈出不能被駁回

當他們點擊「共享」時,我使用下面的代碼使用新的SDK 3.1登錄到Facebook,然後在完成處理程序(簡單的publish_action)中使用FBRequestConnection

[FBSession openActiveSessionWithPublishPermissions:@[@"publish_actions"] defaultAudience:FBSessionDefaultAudienceFriends allowLoginUI:true completionHandler:^(FBSession *session, FBSessionState status, NSError *error) { 

    // Now call FBRequestConnection to post in the stream 

}]; 

當用戶安裝了Facebook應用程序時,它只是將登錄委託給應用程序。但是,當它們不這樣做時,它會在WebView中打開登錄頁面。

在iOS 5中,它打開移動Safari瀏覽器:

enter image description here

我的問題是在iOS 6中,我得到了相同的流量,但在一個模式彈出,而不是(在我的應用程序的頂部)。

enter image description here

我有2個問題與彈出:

1.關閉它

它不能被取消或開除。相比之下,SDK中的HelloFacebook示例應用程序具有相同的彈出窗口,但具有用於關閉它的十字按鈕。

enter image description here

注:現在解決了由於拉維,我缺少其中包含「關閉」圖像Facebook的資源包。

2.接受許可

在彈出的第二個步驟(見上面的屏幕),按沒有做任何事情。按「X」調用完成處理程序錯誤,這是很好的,但沒有發生與好吧。這是使用SDK 3.1登錄Facebook的正確方法嗎?我是否錯過了一個專門針對彈出窗口的回調?

一些更澄清:

這只是發生在iOS6的當Facebook的應用程序是不 安裝和Facebook帳戶是在iOS的 設置未配置

謝謝!

+0

+1 IM FB更新爲3.0SDk – iMeMyself

+1

後可能是在SDK中的錯誤有類似的問題。只是一張紙條; Facebook鼓勵在實際發佈時(而不是在連接時)請求發佈權限:http://developers.facebook.com/docs/howtos/ios-6/ –

+0

感謝Kristofer - 「稍後再執行publish_action」I實際上意味着只要登錄回調到達。我認爲應該可以 – Gromix

回答

7

我不能評論,因爲我的聲望小於50,所以試圖指出我的觀察結果作爲答案。

我也在使用上的Facebook sdk3.1時發現了這個問題。在我的情況下,我使用舊式facebook對象創建,並調用[facebook authorize:permissions],但我修改了源代碼,始終使用「FBSessionLoginBehaviorForcingWebView」,以便我的登錄始終通過應用內Web登錄。

在我的情況下,我缺少FBUserSettingsViewResources.bundle和FacebookSDKResources.bundle,所以我無法看到十字按鈕(但我可以在該位置點擊並撥打電話- (void)fbDidNotLogin:(BOOL)cancelled {)。

+0

非常感謝,這是絕對是朝着正確方向邁出的一步!我也錯過了資源包。我現在可以看到並點擊關閉按鈕。右側的「好」按鈕仍然沒有做任何事情,這可能是一個不同的問題。 – Gromix

+0

即使添加FBUserSettingsViewResources.bundle和FacwebookSDKResources.bundle我看不到取消按鈕.. – iMeMyself

+0

@ravi:如果你不介意我問,你會得到第二個彈出WebView說'你已經授權這個應用程序[好吧]'?如果是這樣,你知道點擊「Okay」後會調用哪個方法嗎?我似乎無法理解我的連線沒有正確連接。 – Gromix

0

我也遇到了這個問題,它似乎是一個已知的錯誤:

https://developers.facebook.com/bugs/539702426044893?browse=search_507daefc9af416244781488

我還沒有解決這個問題呢,但對我來說似乎只能在模擬器上發生。我的應用程序似乎總是通過Safari瀏覽器登錄的設備上安裝

編輯時:所以多一點挖後,我遇到了這個堆棧溢出線程: FBConnect login, share with a webview?

我意識到,我們所看到的對話框是一個uiWebView這實際上是後備,如果應用程序無法打開safari中的對話框。我能夠解決我的問題,我的重置我的模擬器,這將基本上清理餅乾。從你的屏幕截圖中,我相信你也在模擬器中工作。我想知道如果你有相同的結果,你是否重置模擬器?

從菜單iPhone模擬器 - >重置內容和設置...