2011-12-09 34 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以了解实现情况。