好的,首先是基础知识,我正在使用phonegap-plugins(与cordova 1.5兼容的那个),Xcode 4.3.1和iOS 5.1运行最新版本的ChildBrowser的cordova 1.5.0(PhoneGap)。现在问题。我的代码可以在任何地方使用,包括一个非常基本的测试应用程序来显示和显示iOS打印面板。这就是除了PhoneGap以外它无处不在。对于我的生活,我无法让它发挥作用。我认为它与PhoneGap和PhoneGap插件创建的View Hierarchy有关。
在ChildBrowserViewController.h中我添加了这个:
- (IBAction)sendPrint:(id)sender;
然后将其连接到标有Print的按钮(我知道,我应该使用系统操作按钮,为了这个问题,我只是想让它工作)。在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添加打印,如果我能提供一个起点,那就更好了。
BTW,它在objc_msgSend中以EXC_BAD_ACCESS(代码= 2,地址= 0x0)消亡。我尝试在那里没有其他帮助的僵尸。
非常感谢您的帮助。
安德鲁