Изменение размеров плагина Childbrowswer для Phonegap в iOS - PullRequest
3 голосов
/ 21 сентября 2011

Я использую плагин Childbrowser с Phonegap на iOS для подключения Facebook в моем приложении. Это все работает, но когда открывается окно Childbrowser, оно занимает весь экран. Как я могу заставить его просто всплыть в маленьком окне в углу, выполнить работу и выйти?

1 Ответ

2 голосов
/ 30 января 2012

Мне нужно то же самое ...

Так как я не мог найти готовое решение здесь, я решил сделать это сам ... Я вижу, что это очень старый пост, так что я думаю, что вы уже нашли решение, но на тот случай, если вы не нашли и кто-то еще может найти это полезным и сэкономить пару минут:)

ПРИМЕЧАНИЕ: моя цель - только для iPad , поэтому я выбрал UIPopoverViewController, для 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;

Также я отредактировал ChildBrowserCommand.m, синтезировал поповер и изменил:

//[ 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];
}

Наконец, я удалил (закомментировал) dismissModal из ChildBrowserViewController.m (кстати, это не то место, где он должен быть):

-(void)closeBrowser
{   
    if(delegate != NULL)
    {
        [delegate onClose];     
    }

    //[super dismissModalViewControllerAnimated:YES];
}

В результате ChildBrowser открывается в UIPopoverViewController с указанным размером (и без стрелок в моем случае, если вы хотите, просто укажите UIPopoverArrowDirection), удачно завершает работу, когда завершает работу и / или когда щелкает за пределами всплывающего окна. .

С наилучшими пожеланиями, Срджан

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...