Cordova 在iOS中更改Phonegap的Childbrowswer插件的尺寸
我正在使用iOS上带有Phonegap的Childbrowser插件在我的应用程序中进行facebook连接。这一切都可以正常工作,但当Childbrowser窗口打开时,它会全屏显示。我怎样才能让它在角落的一个小窗口中弹出,完成工作然后退出呢?我需要同样的东西 因为我在这里找不到现成的解决方案,所以我决定自己做。。。我看到这是一篇非常古老的文章,所以我想你已经找到了解决方案,但以防万一,你还没有找到,其他人可能会发现它很有用,并节省几分钟:) 注意:我的目标是只使用iPad,所以我选择了UIPOOverviewController,对于iPhone,还有其他可以使用的ViewController,但想法是一样的 我所做的是编辑ChildBrowserCommand.h并添加:Cordova 在iOS中更改Phonegap的Childbrowswer插件的尺寸,cordova,Cordova,我正在使用iOS上带有Phonegap的Childbrowser插件在我的应用程序中进行facebook连接。这一切都可以正常工作,但当Childbrowser窗口打开时,它会全屏显示。我怎样才能让它在角落的一个小窗口中弹出,完成工作然后退出呢?我需要同样的东西 因为我在这里找不到现成的解决方案,所以我决定自己做。。。我看到这是一篇非常古老的文章,所以我想你已经找到了解决方案,但以防万一,你还没有找到,其他人可能会发现它很有用,并节省几分钟:) 注意:我的目标是只使用iPad,所以我选择了UIP
#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;
与:
还增加了一行:
-(void) onClose
{
NSString* jsCallback = [NSString stringWithFormat:@"ChildBrowser._onClose();",@""];
[self.webView stringByEvaluatingJavaScriptFromString:jsCallback];
[popover dismissPopoverAnimated:YES];
}
最后,我从ChildBrowserViewController.m
中删除了(注释掉)dismissModal(顺便说一句,一开始就把它放在了一个错误的地方):
因此,ChildBrowser在UIPopoverViewController中以指定的大小打开(在我的情况下没有箭头,如果您需要,只需指定UIPopOverErrorDirection
),完成后和/或在popover窗口外单击时会很好地关闭
致以最良好的祝愿,
斯德詹
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];
}
-(void)closeBrowser
{
if(delegate != NULL)
{
[delegate onClose];
}
//[super dismissModalViewControllerAnimated:YES];
}