我在iOS上使用带有Phonegap的Childbrowser插件在我的应用程序中进行facebook连接。这一切都有效,但是当Childbrowser窗口打开时,它会全屏显示。如何让它只是弹出一个角落里的小窗口,然后退出工作呢?
答案 0 :(得分:2)
我需要同样的事情......
由于我在这里找不到现成的解决方案,所以我决定自己做...我觉得这个帖子非常老,所以我猜你已经找到了解决办法,但万一你没有而其他人可能会发现它很有用并节省几分钟:)
注意:我的目标是仅限iPad ,因此我选择了UIPopoverViewController,对于iPhone,还有其他可以使用的ViewControllers,但这个想法是一样的......
我所做的是编辑ChildBrowserCommand.h
并添加:
#define POPOVER_WIDTH 400
#define POPOVER_HEIGHT 300
@interface ChildBrowserCommand : PGPlugin <ChildBrowserDelegate, UIPopoverControllerDelegate> {
ChildBrowserViewController* childBrowser;
UIPopoverController *popover;
}
@property (nonatomic, retain) ChildBrowserViewController *childBrowser;
@property (nonatomic, retain) UIPopoverController *popover;
此外,我编辑了ChildBrowserCommand.m
,合成了popover,并更改了:
//[ cont presentModalViewController:childBrowser animated:YES ];
使用:
if (popover == NULL)
{
popover = [[UIPopoverController alloc] initWithContentViewController:childBrowser];
[popover setPopoverContentSize:CGSizeMake(POPOVER_WIDTH, POPOVER_HEIGHT) animated:YES];
popover.delegate = self;
}
[popover presentPopoverFromRect:cont.view.bounds inView:cont.view permittedArrowDirections:0 animated:YES];
并添加了解雇线:
-(void) onClose
{
NSString* jsCallback = [NSString stringWithFormat:@"ChildBrowser._onClose();",@""];
[self.webView stringByEvaluatingJavaScriptFromString:jsCallback];
[popover dismissPopoverAnimated:YES];
}
最后,我从ChildBrowserViewController.m
删除了(已注释掉)dismissModal(顺便说一句,首先是错误的地方):
-(void)closeBrowser
{
if(delegate != NULL)
{
[delegate onClose];
}
//[super dismissModalViewControllerAnimated:YES];
}
结果,ChildBrowser在UIPopoverViewController中以指定的大小打开(在我的情况下没有箭头,如果你想要一些,只需指定UIPopoverArrowDirection
),在完成时和/或在弹出窗口外点击时很好地解散...
最诚挚的问候, 斯尔詹