UIWebView中的Facebook评论框没有合适的高度
我正试图加载下面的一个UIWebView内的HTML。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <body> <div id="fb-root"></div> <script> window.fbAsyncInit = function() { FB.init({ appId : 'myAppId', status : true, xfbml : true }); FB.Event.subscribe("xfbml.render", function(response) { FB.Canvas.setSize(); }); }; (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 = "http://connect.facebook.net/en_US/all.js"; fjs.parentNode.insertBefore(js, fjs); }(document, 'script', 'facebook-jssdk')); </script> <div class="fb-comments" data-href="http://www.google.com/" data-num-posts="10"></div> </body> </html>
在浏览器中正确显示评论框和FB.Canvas.setSize()适当调整高度(没有iframe的跨度高度设置为160)。
这个setSize()函数在UIWebView中看起来什么都不做,可能是因为url的scheme不是http或https。 我无法validation这一点,因为Safaridebugging器不显示“不安全的Javascript尝试”消息。
我用loadHTMLString加载UIWebView:baseURL:
我怎样才能让Facebook的评论框有适当的高度?
边注:
类似的问题: 无法在iOS UIWebView中加载完整的Facebook评论插件
在Facebook的all.js中徘徊我发现这个代码里面的评论function(如果你正在寻找'sdk.XFBML.Comments')设置高度
getSize: function() { if (this._attr.mobile) return { width: '100%', height: 160 }; return { width: this._attr.width, height: 160 };
这里同样的问题。 解决scheme是不使用本地HTML文件(或HTMLstring)。 将HTMLfile upload到服务器并使用:
NSURL *url = [NSURL URLWithString:@"http://www.blablblab.com/yourfile.html"]; [self.webview loadRequest:[NSURLRequest requestWithURL:url]];
代替:
[self.webview loadHTMLString:localString baseURL:nil];
我还没有发现为什么当文件位于服务器上时,布局有所不同,但是当它是本地文件时,我的Facebook Comments View的高度总是降低到“height:160”。
你是正确的,问题是该计划不是HTTP或HTTPS。 该SDK不支持其他scheme,因此将无法初始化,并且setSize()将不会执行任何操作。 不幸的是,你需要find一些其他的解决方法来获得这个function。
我也遇到了这个问题,但由于内部要求,我们不得不从HTMLstring加载webview。 我们发现,如果您将“Facebook评论”视图的值更改为“自动”,则会按预期显示。
等待webview完全加载完成,然后运行:
[self.webview stringByEvaluatingJavaScriptFromString: @"$(\".fb-comments span > iframe\").css(\"height\",\"auto\");"];
这为我们解决了这个问题。
- FBSDKLoginManager logInWithReadPermissions:fromViewController:处理程序:完成不调用应用程序第一次运行
- Facebook SDK 4.x权限问题iOS
- titaniumiOS – Facebook SSO不返回到应用程序
- Facebook与iOS5和iOS6
- FBRequest requestForMe startWithCompletionHandler方法不能在设备上工作
- 我可以分享Facebook user.name和user.id多个视图
- 深层链接到Facebook Messenger
- PFFVideosUtils.logInInBackgroundWithReadPermissions,swift 1.2,返回的用户为零
- 如何在单个iOS应用程序中使用多个Facebook应用程序ID?