【发布时间】:2012-05-10 14:39:15
【问题描述】:
我有 2 个 facebook 应用程序,一个高度为 872 像素,另一个高度为 712 像素。对于 827px 应用程序,我已使用 facebook JS SDK 成功地将应用程序的大小从 800 重新调整为 872px。但是对于 712 像素,我无法将其从 800 像素降低。 facebook 画布应用程序是否有最小高度或我做错了什么?
【问题讨论】:
标签: facebook-apps
我有 2 个 facebook 应用程序,一个高度为 872 像素,另一个高度为 712 像素。对于 827px 应用程序,我已使用 facebook JS SDK 成功地将应用程序的大小从 800 重新调整为 872px。但是对于 712 像素,我无法将其从 800 像素降低。 facebook 画布应用程序是否有最小高度或我做错了什么?
【问题讨论】:
标签: facebook-apps
显然Canvas APP不能低于800像素。
【讨论】:
您是否尝试过动态设置高度?这对我有用,因为我试图显示高度小于 800 像素的多个页面。我的页面标签的通常高度约为 700 像素。
window.fbAsyncInit = function() {
FB.init({
appId: window.FB_APP_ID
});
// set height dependent on page (min height is 800px)
// but we are attempting to get it shorter
var body_height = $('body').first().outerHeight();
FB.Canvas.setSize({
height: body_height
});
}
对我也有用的方法是,如果不抓取正文高度,则将高度设置为比加载时的任何页面都短,然后触发 setAutoGrow() 函数将其扩展到适当的高度,但会有一些延迟。虽然这会导致您的画布成为初始设置的高度(例如 480 像素),然后当您的超时触发时会扩大到大小。
window.fbAsyncInit = function() {
FB.init({
appId: window.FB_APP_ID
});
FB.Canvas.setSize({
height: 480 // some height shorter than necessary
});
setTimeout(function(){
FB.Canvas.setAutoGrow();
}, 500);
}
【讨论】:
处理它:
FB.Canvas.getPageInfo(
function(info) {
// console.log(info);
if (info.clientHeight< 800) FB.Canvas.setSize({ height: 800 });
}
);
【讨论】: