2011-12-09 55 views

回答

3

通過將apprequests對話框的「無摩擦」參數設置爲「1」,可以啓用無摩擦請求。例如;

// create a dictionary for our dialog's parameters 
NSMutableDictionary *params = [NSMutableDictionary dictionaryWithCapacity: 7]; 

// set the frictionless requests parameter to "1" 
[params setObject: @"1" forKey:@"frictionless"]; 

// ... add other parameters ... 

// show the request dialog 
[facebook dialog:@"apprequests" andParams:params andDelegate: nil]; 

我想這也回答了Frictionless Requests on iOS - how?

3

在Facebook的IOS-SDK的更新版本(2012年2月25日和更高版本),有一個新的FBFrictionlessRequestSettings您可以啓用一次,然後所有未來的apprequests將自動無摩擦。所以,當你的應用程序啓動時,你應該做的:

[facebook enableFrictionlessRequests]; 

我寧願這些手動設置@「摩擦」鍵1,因爲當您發送apprequest,你仍然會短暫地看到FBDialog彈出,然後消失。如果您執行'enableFrictionlessRequests',Facebook.m會自動爲您設置'isViewInvisible'參數並防止FBDialog閃爍。

+0

我正在使用'enableFrictionlessRequests'方法,並且我仍然看到對話框短暫閃爍。你有什麼想法,爲什麼? –

9

此調用使摩擦請求:

[facebook enableFrictionlessRequests]; 

但它不足以阻止所有對話框從短暫出現。由於無摩擦的收件人緩存默認情況下不會加載,直到出現第一個對話框。一旦出現第一個對話框,無摩擦的收件人列表將被加載,並且隨後的對話框將不會出現。但是,您可以撥打

[facebook reloadFrictionlessRecipientCache]; 

成功登錄後,在第一個對話框出現之前已準備好無摩擦的收件人緩存。

佛朗哥

+0

不工作,至少不適用於Facebook SDK v3.19 – ozba

-1

現在,隨着Facebook的iOS版SDK 3.2.1,您可以使用無摩擦的請求,而不使用過時的頭。請查看BooleanOGSample以瞭解實現情況。