【问题标题】:Trying to load Facebook-Comments plugin in a UIWebView尝试在 UIWebView 中加载 Facebook 评论插件
【发布时间】:2012-05-30 02:30:50
【问题描述】:

我正在尝试在 iPhone 应用程序的 UIWebView 中查看 facebook-cmets 插件。

我从 Facebook 的 iOS tutorial 开始,在那里我实现了单点登录。应用程序委托负责 Facebook 的单点登录,然后将我重定向到我的单视图控制器,该控制器显示标题栏和 UIWebView。

我使用名为“cmets.html”的本地文件加载 webview,该文件已添加并复制到我的包/项目目录中。

NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"comments" ofType:@"html"] isDirectory:NO];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
[webView loadRequest:request];

我的 html 文件是插件实现的基本版本,在 Facebook Comments Plugin 描述站点生成。我插入了一个网址并单击“获取代码”。我拿了他们提供给我的 HTML5 代码,并把它保存在一个 html 文件中

<html>
<body>
    <div id="fb-root"></div>
    <script>(function(d, s, id) {
      var js, fjs = d.getElementsByTagName(s)[0];
      if (d.getElementById(id)) return;
      js = d.createElement(s); js.id = id;
      js.src = "//connect.facebook.net/en_GB/all.js#xfbml=1";
      fjs.parentNode.insertBefore(js, fjs);
    }(document, 'script', 'facebook-jssdk'));</script>

    <div class="fb-comments" data-href="http://www.bombslo.com" data-num-posts="4" data-width="470"></div>

</body>
</html>

UIWebView 在我的模拟器上加载得很好。我在我的设备上托管并启动了 html,它在 Safari 中加载良好。问题是 UIWebView 不会在嵌入式 UIWebView 中加载 Facebook-cmets 插件。

需要注意的重要一点是,我没有得到一个空白屏幕。我看到两个动画加载栏,这是 Facebook 的典型。另请注意,Facebook 生成的代码有 HTML5 和 XFBML。我都试过了。

【问题讨论】:

  • 如果没有人知道,我希望有一个替代系统将用户 cmets 集成到我的应用程序中。和方向将非常感激

标签: ios facebook uiwebview


【解决方案1】:

我有同样的问题。但在与 Facebook iOS sdk 集成后,将以下语句放入 AppDelegate.m

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
facebook = [[Facebook alloc] initWithAppId:@"your app id" andDelegate:self];
....
}

它解决了我的问题。

祝你好运!

【讨论】:

    【解决方案2】:

    这个问题似乎可以通过在js.src中添加http://来解决

    尝试将 FB 脚本更改为此。

    js.src = "http://connect.facebook.net/en_GB/all.js#xfbml=1";
    

    【讨论】:

    • 由于某种原因这对我不起作用。它适用于 Twitter 嵌入。
    【解决方案3】:

    调用一个提要对话框出乎意料地对我有用!我打了电话

    [facebook dialog:@"feed" andDelegate:self];
    

    关闭后,cmets 插件已正确加载。

    【讨论】:

      【解决方案4】:

      我尝试了所有这些解决方案,但这些都不起作用。对我有用的是设置UIWebViewBase URL。根据问题的示例,假设我已将数据读入变量htmlStr,那么加载策略将如下所示

      webview.loadHTMLString(htmlStr, baseURL: URL(string: "http://www.bombslo.com")!)
      

      这对我有用。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-03-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多