Cordova 在iOS中更改Phonegap的Childbrowswer插件的尺寸

Cordova 在iOS中更改Phonegap的Childbrowswer插件的尺寸,cordova,Cordova,我正在使用iOS上带有Phonegap的Childbrowser插件在我的应用程序中进行facebook连接。这一切都可以正常工作,但当Childbrowser窗口打开时,它会全屏显示。我怎样才能让它在角落的一个小窗口中弹出,完成工作然后退出呢?我需要同样的东西 因为我在这里找不到现成的解决方案,所以我决定自己做。。。我看到这是一篇非常古老的文章,所以我想你已经找到了解决方案,但以防万一,你还没有找到,其他人可能会发现它很有用,并节省几分钟:) 注意:我的目标是只使用iPad,所以我选择了UIP

我正在使用iOS上带有Phonegap的Childbrowser插件在我的应用程序中进行facebook连接。这一切都可以正常工作,但当Childbrowser窗口打开时,它会全屏显示。我怎样才能让它在角落的一个小窗口中弹出,完成工作然后退出呢?

我需要同样的东西

因为我在这里找不到现成的解决方案,所以我决定自己做。。。我看到这是一篇非常古老的文章,所以我想你已经找到了解决方案,但以防万一,你还没有找到,其他人可能会发现它很有用,并节省几分钟:)

注意:我的目标是只使用iPad,所以我选择了UIPOOverviewController,对于iPhone,还有其他可以使用的ViewController,但想法是一样的

我所做的是编辑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;
与:

还增加了一行:

-(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];
}