iOS 为 uiwebview 内容启用 AirPrint



我对XCode和应用程序开发非常陌生。我目前正在iPad上的uiwebviews中加载一个基于Web的应用程序。加载一个特定页面时,它会显示一个 pdf 文件。我希望能够使用AirPrint打印此pdf文件。我正在寻找一个简单的解决方案。目前我正在处理的应用程序有 6 个文件供使用。

-ViewController.m
-ViewController.h
-MainStoryboard_iPad.storyboard
-MainStoryboard_iPhone.storyboard
-AppDelegate.h
-AppDelegate.m

在主故事板文件中,有许多窗口(图形)喜欢中央导航系统。如果可以花一些时间真正解释我需要做什么,而不是"看看这个链接"。我有编程经验,但从未使用过XCode或任何与Apple相关的产品。

我想出了如何做到这一点。首先,我在这里找到了一段代码,iOS Air Print for UIwebview,当时我不知道如何实现它,但后来我做了如下。

我的应用程序是单视图 XCode 项目

在我的

情节提要中,我插入了一个按钮(在我的导航栏上)并将其标识符更改为"Action",然后,确保打开"tuxedo"编辑器视图,显示我的 ViewController.m 文件,我在按住控件的同时单击并从按钮拖动到 ViewController.m 文件。这在询问我的按钮 ID 后插入了我的 IBAction 方法。

myActionButton

然后我复制了问题的响应 3 中指定的代码。我的ViewController.m看起来有些链接。

#import "ViewController.h"
@interface ViewController()
@end
@implementation ViewController()
//Some stuff here
@end
@synthesize webView
-(IBAction)myActionButton:(id)sender{
UIPrintInfo *pi = [UIPrintInfo printInfo];
pi.outputType = UIPrintInfoOutputGeneral;
pi.jobName = webView.request.URL.absoluteString;
pi.orientation = UIPrintInfoOrientationPortrait;
pi.duplex = UIPrintInfoDuplexLongEdge;
UIPrintInteractionController *pic = [UIPrintInteractionController sharedPrintController];
pic.printInfo = pi;
pic.showsPageRange = YES;
pic.printFormatter = webView.viewPrintFormatter;
[pic presentAnimated:YES completionHandler:^(UIPrintInteractionController *pic2, BOOL completed, NSError *error) {
    // indicate done or error
}];
}

也在我的ViewController.h文件中

#import ...
@interface ViewController : ...
{
IBOutlet UIWebView *webView
}
@property (nonatomic,retain) IBOutlet UIWebView *webView
@end

我没有设置网络视图,所以我不能 100% 确定它们是如何创建的,但是在 youtube 上有一个很好的系列,适用于 HackLife87 的初学者,展示了如何制作单个视图应用程序。我认为XCode教程视频#7涉及设置视图。

由于我对XCode

和iPad应用程序开发非常感兴趣,因此我设法通过结合观看上述XCode教程视频的知识,然后实施Hafthor在堆栈溢出上提供的解决方案来解决我的问题。

最新更新