我正在尝试在 iPhone 应用程序的 UIWebView 中查看 facebook-comments 插件。
我从 Facebook 的iOS 教程开始,在那里我实现了单点登录。应用程序委托负责 Facebook 的单点登录,然后将我重定向到我的单视图控制器,该控制器显示标题栏和 UIWebView。
我使用一个名为“comments.html”的本地文件加载 webview,该文件已添加并复制到我的 bundle/project 目录中。
NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"comments" ofType:@"html"] isDirectory:NO];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
[webView loadRequest:request];
我的 html 文件是插件实现的基本版本,在Facebook 评论插件描述站点生成。我插入了一个网址并单击“获取代码”。我拿了他们提供给我的 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 评论插件。
需要注意的重要一点是,我没有得到一个空白屏幕。我看到两个动画加载栏,这是 Facebook 的典型。另请注意,Facebook 生成的代码有 HTML5 和 XFBML。我试过两者都用。