【问题标题】:Facebook IOS SDK Frictionless RequestsFacebook IOS SDK 无摩擦请求
【发布时间】:2011-12-09 15:44:06
【问题描述】:

似乎没有办法像 facebook ios sdk 那样设置无摩擦请求。对于 Javascript 实现,这可以在 fb.init 方法中完成。

对我的问题的唯一其他参考是Facebook Requests Dialog: Frictionless Requests in native iOS app possible?,它指出摩擦仅在不处于沙盒模式时才有效。

有其他人发现是这种情况吗?

【问题讨论】:

    标签: ios facebook sdk apprequests


    【解决方案1】:

    此调用可实现无摩擦请求:

    [facebook enableFrictionlessRequests];
    

    但仅仅阻止所有对话框短暂出现是不够的。因为默认情况下,在第一个对话框出现之前不会加载无摩擦收件人缓存。出现第一个对话框后,将加载无摩擦收件人列表,并且不会出现后续对话框。但是,您可以调用

    [facebook reloadFrictionlessRecipientCache]; 
    

    成功登录后,在第一个对话框出现之前准备好无摩擦的收件人缓存。

    佛朗哥

    【讨论】:

      【解决方案2】:

      可以通过将 apprequests 对话框的“frictionless”参数设置为“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 的较新版本(2/25/2012 和更新版本)中,有一个新的 FBFrictionlessRequestSettings,您可以启用一次,然后所有未来的应用程序将自动无摩擦。所以当你的应用启动时,你应该这样做:

        [facebook enableFrictionlessRequests];
        

        我更喜欢手动将@"frictionless" 键设置为 1,因为当您发送应用请求时,您仍然会短暂地看到 FBDialog 弹出然后消失。如果您执行“enableFrictionlessRequests”,Facebook.m 会自动为您设置“isViewInvisible”参数并防止 FBDialog 闪烁。

        【讨论】:

        • 我正在使用enableFrictionlessRequests 方法,但我仍然看到对话框短暂闪烁。你知道为什么吗?
        【解决方案4】:

        现在使用 Facebook iOS SDK 3.2.1,您可以使用无摩擦请求,而无需使用已弃用的标头。请查看 BooleanOGSample 了解实现细节。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2011-12-06
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-07-12
          • 1970-01-01
          相关资源
          最近更新 更多