PhoneGap, ChildBrowser и печать - PullRequest
       7

PhoneGap, ChildBrowser и печать

1 голос
/ 23 марта 2012

ОК, сначала основы, я использую cordova 1.5.0 (PhoneGap) с последней версией ChildBrowser из плагинов phonegap (совместимой с cordova 1.5), Xcode 4.3.1 и iOS 5.1. Теперь проблема. У меня есть код, который работает везде, включая действительно простое тестовое приложение, для отображения и отображения панели печати iOS. То есть он работает везде, КРОМЕ в PhoneGap. На всю жизнь я не могу заставить его работать. Я предполагаю, что это как-то связано с иерархией представлений, созданной PhoneGap и плагином PhoneGap.

В ChildBrowserViewController.h я добавил это:

- (IBAction)sendPrint:(id)sender;

А затем подключил это к кнопке с надписью Печать (я знаю, я должен использовать кнопку действия системы, ради этой проблемы я просто пытаюсь заставить ее работать). В ChildBrowserViewController.m я добавил следующую реализацию:

- (IBAction)sendPrint:(id)sender
{
    UIPrintInteractionController *printController = [UIPrintInteractionController sharedPrintController];
    UIPrintInfo *printInfo = [UIPrintInfo printInfo];
    printInfo.outputType = UIPrintInfoOutputGeneral;
    printController.printInfo = printInfo;

    printController.printFormatter = [self.webView viewPrintFormatter];

    void (^completionHandler)(UIPrintInteractionController *, BOOL, NSError *) =
    ^(UIPrintInteractionController *printController, BOOL completed, NSError *error)
    {};

    [printController presentAnimated:YES completionHandler:completionHandler];
}

Обратите внимание, что эта реализация лишена всей проверки ошибок для публикации здесь, это минимальная реализация, которая все еще работает за пределами PhoneGap.

Последние пару дней я вырывал свои волосы, пытаясь заставить это работать безрезультатно. Поэтому я надеюсь, что у кого-то еще есть какая-то идея, и учитывая количество людей, которых я видел, которые хотят добавить печать в ChildBrowser, если я могу предоставить отправную точку, тем лучше.

Кстати, он умирает в objc_msgSend с EXC_BAD_ACCESS (код = 2, адрес = 0x0). И я попытался включить там Зомби без дополнительной помощи.

Большое спасибо за любую помощь.

Andrew

...