簡體   English   中英

iOS facebook SDK - 對話框 - 移動按鈕

[英]iOS facebook SDK - dialog - moving buttons

在我的應用程序中,用戶可以發布指向他的 facebook 牆的鏈接。 但是,我不能使用 SDK 中的“授權”方法來登錄用戶,因為對於我的客戶來說,facebook 明確要求所有權限,這不是 go。 因此我立即使用 facebook 對話框。

NSMutableDictionary* params = [NSMutableDictionary dictionaryWithObjectsAndKeys:@" http://www.google.at ",@"link", nil];

[self.facebook 對話框:@"feed" andParams:params andDelegate:self];

這工作正常,但登錄后,當用戶可以發布到他的牆上時,發布和取消按鈕總是移出屏幕(見截圖)。 當我向下滾動時,按鈕立即再次移出屏幕。 成功登錄后不會發生這種情況。 有人知道我怎樣才能將按鈕保留在屏幕上嗎? 否則用戶無法發布鏈接。

我找到了這個解決方案,但至少對我來說它不起作用: https://github.com/facebook/facebook-ios-sdk/issues/329

截圖 http://dl.dropbox.com/u/12018803/facebookPosting.png

我遇到了同樣的問題,並且浪費了很多時間,沒有找到解決方案,而是找到了一種解決方法。

我有三種方法

- (void) openMyFacebook
- (void) fbDidLogin
- (void) dialogFacebook

我打電話給 openMyFacebook

- (void) openMyFacebook,我分配 Facebook 並查看 NSUserDefaults 中是否已經存儲了密鑰,如果沒有我調用[facebook authorize:nil delegate:self]; 在委托中- (void) fbDidLogin我存儲密鑰(在 facbook 示例中相同)。 然后就是訣竅了。

發布 facebook

[facebook release];
 facebook = nil;

並使用存儲的密鑰再次啟動- (void) openMyFacebook

完美運行。

- (void) openMyFacebook {

    if (facebook == nil) {

        facebook = [[Facebook alloc] initWithAppId:@"xxxxxxxxxx"];
    }

    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    if ([defaults objectForKey:@"FBAccessTokenKey"] 
        && [defaults objectForKey:@"FBExpirationDateKey"]) {
        facebook.accessToken = [defaults objectForKey:@"FBAccessTokenKey"];
        facebook.expirationDate = [defaults objectForKey:@"FBExpirationDateKey"];
    }

    if (![facebook isSessionValid]) {
        [facebook authorize:nil delegate:self];
    }
    else {

        [self dialogFacebook];
    }

}

- (void)fbDidLogin {
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    [defaults setObject:[facebook accessToken] forKey:@"FBAccessTokenKey"];
    [defaults setObject:[facebook expirationDate] forKey:@"FBExpirationDateKey"];
    [defaults synchronize];

//release!!!!
    [facebook release];
    facebook = nil;
//and start again
    [self openMyFacebook];
}

- (void) dialogFacebook {   

NSMutableDictionary* params = [NSMutableDictionary dictionaryWithObjectsAndKeys:
                               kAppId, @"app_id",
                               linkextern, @"link",
                               facebookImageUrlString, @"picture",
                               name, @"name",

                               @" ",  @"message",
                               nil];

[facebook dialog:@"feed" andParams:params andDelegate:self];
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM