首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

用于UIwebview的iOS Air打印

首先,确保您已安装并熟悉了用于UIWebView的iOS Air打印SDK。然后,按照以下步骤进行操作:

  1. 创建AirPrint配置文件 在您的Xcode项目文件夹中,创建一个名为Info.plist的文件,然后添加以下配置:
代码语言:xml
复制

<key>NSAppPrint</key>

<string>YES</string>

代码语言:txt
复制
  1. 导入AirPrint库 在您的Objective-C或Swift项目中,导入AirPrint.framework
代码语言:swift
复制

import AirPrint

代码语言:txt
复制
  1. 设置Web视图

使用WKWebViewUIWebView作为Web视图。以下是一个简单的Swift代码示例:

代码语言:swift
复制

import UIKit

class ViewController: UIViewController, WKNavigationDelegate {

代码语言:txt
复制
   var webView: WKWebView!
代码语言:txt
复制
   override func loadView() {
代码语言:txt
复制
       let webConfiguration = WKWebViewConfiguration()
代码语言:txt
复制
       webView = WKWebView(frame: .zero, configuration: webConfiguration)
代码语言:txt
复制
       webView.navigationDelegate = self
代码语言:txt
复制
       view = webView
代码语言:txt
复制
   }
代码语言:txt
复制
   override func viewDidLoad() {
代码语言:txt
复制
       super.viewDidLoad()
代码语言:txt
复制
       if let url = Bundle.main.url(forResource: "index", withExtension: "html", subdirectory: "www") {
代码语言:txt
复制
           let request = URLRequest(url: url)
代码语言:txt
复制
           webView.load(request)
代码语言:txt
复制
       }
代码语言:txt
复制
   }

}

代码语言:txt
复制
  1. 加载并呈现网页

使用WKWebView时,向loadView()方法传递一个URL,该方法将加载并呈现网页。

  1. AirPrint设置

使用如下的代码来设置AirPrint:

代码语言:swift
复制

func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {

代码语言:txt
复制
   let printInfo = UIPrintInfo(dictionary: nil)
代码语言:txt
复制
   printInfo.printer = UIPrintPrinter(dictionary: nil)
代码语言:txt
复制
   if let url = webView.url {
代码语言:txt
复制
       let request = URLRequest(url: url)
代码语言:txt
复制
       request.setValue("1", forHTTPHeaderField: "X-UP-Printing-Option")
代码语言:txt
复制
       request.setValue("https://www.example.com", forHTTPHeaderField: "Host")
代码语言:txt
复制
       webView.load(request)
代码语言:txt
复制
   }

}

代码语言:txt
复制
  1. 打印

用户点击打印按钮后,网页将使用AirPrint进行打印。

  1. 测试

最后,在iOS设备上测试您的应用程序,确保AirPrint正常工作。

以上步骤应该可以帮助您实现iOS应用程序的AirPrint功能。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • iOS小技能:UIWebView 被拒的解决方案(用更安全的WKWebView替代UIWebView)

    引言 背景:202012之后苹果将不接受使用UIWebView UIWebView 被拒的解决方案:使用WKWebView替代UIWebView 1、查 SDK是否用 UIWebView 的 API...2、移除/升级含UIWebView的第三方SDK(例:AFNetworking) 3、使用WKWebView替代UIWebView 4、WKWebView与JS交互案例(点击页面图片,调用iOS方法进行图片放大显示...比UIWebView更安全 基于NSURLProtocol实现iOS应用底层所有网络请求拦截(含网页ajax请求拦截【不支持WKWebView】NSURLProtocol 只能拦截 UIURLConnection...1.2 移除/替换自己项目使用UIWebView API的代码 自己是否用了该 API 只需要在 Xcode 中全局搜索即可 II 升级包含UIWebView的第三方SDK的具体例子 pod...'AFNetworking','~> 4.0.1'#2、 Migrate UIWebview to WKWebView #4441 #4.x iOS 9 macOS 10.10 watchOS

    3.3K20

    iOS开发----JavaScriptCore、UIWebView及WKWebView交互的那些事

    ,并分别结合 UIWebView以及 WKWebView做了一下交互总结。...分别使用 UIWebView 以及 WKWebView 实现效果如下: JavaScriptCore 类库里面有12个类(还有两个是负责导入相关类的头文件以及一个关于WebKit的宏定义);在基本的交互过程中...JSValue 可以理解成 一种供iOS数据结构与JS数据结构相互转换的包装,也可以看成一种桥接关系,我们执行JS获取的结果就是通过JSValue对象进行包装传给客户端进行处理的,类型转换官方文档描述如下...方法告知 Web,修改当前label的值 UIWebView JSExport 定义一个自定义的协议RITLJSExport,这里仍然采用混编模式,因为我还是Swfit注入失败了......这样子,基于JavaScriptCore的UIWebView以及WKWebView交互就算圆满完成啦!

    1.6K20

    浅谈iOS中WKWebView和UIWebView的清除缓存问题

    网页中加载的是一张图片,在后台将加载的图片换掉的时候再在App中加载此网页,发现展示的图片还是之前的图片,并没有更新,而且多次重新加载网页显示的还是之前的图片,说明缓存很严重。...先说说UIWebView中缓存的清除,代码只有一句:  [[NSURLCachesharedURLCache]removeAllCachedResponses]; 再说WKWebView中缓存的清除...注意:只有在iOS9之后WKWebView才有清除缓存的方法,在写代码的时候切记对系统版本进行判断。    ...        [[NSFileManagerdefaultManager]removeItemAtPath:cookiesFolderPatherror:&errors];     } 增加内容: 使用UIWebView...增加内容: 在iOS8上还会导致崩溃的代码: /* 导致iOS8奔溃的代码      */ self.webView.allowsBackForwardNavigationGestures

    5.3K10

    iOS中解码.txt文件在UIWebView出现中文乱码的问题

    用UIWebview打开txt文件有时候会出现乱码的情况,这种情况应该是txt的编码问题,解决方案如下: webview打开网页有这三个方法: - (void)loadRequest:(NSURLRequest...既文件的指定类型。 UTI和MIME的概念 ? uti.png 同一类型标识符(Uniform Type Identifier,UTI)代表IOS信息共享的中心组件。可以把它看成下一代的MIME类型。...UTI是标识资源类型(比如图像和文本)的字符串,他们制定哪些类型的信息将用于公共数据对象,他们不需要依赖于老式的指示符,比如文件扩展名,MIME类型,或者文件类型的元数据。...是设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问的时候,浏览器会自动使用指定应用程序来打开。多用于指定一些客户端自定义的文件名,以及一些媒体文件打开方式。...loadData:previewData MIMEType:(__bridge NSString *)(mimeType) textEncodingName:@"GBK" baseURL:nil]; iOS

    3.3K40

    WebViewJavascriptBridge源码探究--看OC和JS交互过程

    2、UIWebView加载我们自定义的html页面TestJSBridge.html, 里面有脚本注册js调用oc方法标识,和oc调用js标识 的代理方法(src的值一直是:wvjbscheme://__WVJB_QUEUE_MESSAGE__ ,也可自定义,这个在进入oc UIWebView代理方法时会用来作为判断标识)。...属性,触发UIWebView代理方法, 根据src的值进入相应处理方法中 -->   在oc方法里面调用js方法_fetchQueue, 获取js数组里面所有的参数   -->   根据传入的自定义注册标识...调用bridge的callHandler方法,传入需要的参数和自定义注册标识 --> 最后使用UIWebView系统方法stringByEvaluatingJavaScriptFromString调用...search=博客园 这样UIWebView加载这个带中文参数的url, 是不能显示的,需要把中文进行转义,才能显示。

    3.4K50

    记使用WKWebView修改user-agent在iOS 12踩的一个坑

    随着摒弃了对iOS老系统的支持,项目也开始逐步开始转向WKWebView,本想着新系统应该能填一些WKWebView的坑,结果发现还是还是坑不断,这次在iOS12又遇到一个神坑。...在iOS 10/11上面,这段代码执行都好好的,并且也没什么问题。结果现在在iOS 12beta版本里面突然不生效了,自己追加的userAgent没有添加成功。...为了验证下,我在WKWebView的delegate方法webView: didFinishNavigation:里打印customUserAgent和通过js方法获取的userAgent,结果发现两者真的是不一样的...但是一旦我们刷新下当前web页面,即调用webview的reload方法,这个customUserAgent就生效了。所以这应该是苹果iOS12系统的一个bug。...获取当前UserAgent然后追加,或者定义局部的WKWebview,都是一样的效果 if let agent = UIWebView.init().stringByEvaluatingJavaScript

    10.1K50

    判断js引擎是javascriptCore或者v8

    来由   纯粹的无聊,一直在搜索JavaScriptCore和SpiderMonkey的一些信息,却无意中学习了如何在ios的UIWebView中判断其js解析引擎的方法: if (window.devicePixelRatio...对比   1,在iOS中通过UIWebView组件的stringByEvaluateJavascriptString:(NSString *)方法来调用。...js端代码的执行;     3)通过1)的流程可看出,通过UIWebView实现的bridge机制性能堪忧,交互蛋疼;     4)通过UIWebView执行js代码段,有几点限制:由于ios并未给予我们通过...2,目前有三种方案实现oc与js通信,第一种继续使用cordova的通信机制,也就是目前比较流行的UIWebView;第二种采用React Native的通信机制,使用iOS7内置的javascriptCore...3, 综上三种方案,第一种代价最低,而且流程比较完善,而且已经系统化,但是性能是硬伤;第二种则是非常好的借鉴,RN的方式不仅仅适用于javascriptCore,而且也适用于其他引擎如SpiderMonkey

    3.4K50

    iOS-UIWebView加载HTMLString图片显示超过屏幕宽度,导致webView可以左右滑动处的理方法

    简单介绍一下使用[self.webView loadHTMLString:htmls baseURL:nil]单纯加载HTMLString的小技巧。...主要解决的是当加载的HTMLString既有文字又有图片时,图片没有缩放,导致图片宽度超过屏幕宽度,使得webView整体左右都可以滑动,这样效果非常不好(见下图): ?...01-图片过宽导致webView可以左右滑动.gif 效果不好的代码如下: 注:以下方法是在网络请求成功回调里面调用的 // 网络请求加载的数据,进行字典转模型 NSDictionary *...02-经过调整以后的效果.gif 调整后的代码如下: 注:以下方法是在网络请求成功回调里面调用的 // 网络请求加载的数据,进行字典转模型 NSDictionary *dict = [result..." $img[p].style.width = '100%%';\n"--->就是设置图片的宽度的 100%代表正好为屏幕的宽度 */ NSString *htmlString = [NSString

    1.8K70

    【iOS开发】从 UIWebView 到 WKWebView

    ② UIWebView 和 WKWebView 的区别 WKWebView 更快(占用内存可能只有 UIWebView 的1/3~1/4),没有缓存,更为细致地拆分了 UIWebViewDelegate...③为什么现在是时候从 UIWebView 迁移到 WKWebView 了: 截止到我写这篇文章的时候,据 mixpanel 的数据,iOS 9 占有率已达 58.55%,iOS 8 占有率达到了 34.78%...所以从现在开始,再开发 App 只兼容 iOS 8 和 iOS 9 两个版本就可以了(如果你的产品对覆盖率要求不是很苛刻的话)。...WKWebView 是 iOS 8 之后才有的 WebKit 中的内容,所以之前我们要同时兼容 iOS 7 和 iOS 8 的时候,可以推辞说 UIWebView 和 WKWebView 一起做太麻烦了...下面的示例代码用于从 WKWebView 中获取网页中的文本。

    1.8K20

    webview 中的NSURLErrorDomain Code=-999处理

    摘要:替换UIWebview为WKWebview时,遇到一个怪异的现象,webview的二级界面回到一级界面时,一级重新渲染时,会直接抛错; 分析问题: 因为,我们的app支持iOS8以上,考虑到UIWebview...的内存使用要比WKWebview的高、加载速度慢,同时,对WKWebview的高达60fps的滚动刷新率以及内置手势充满了羡慕,所以脑袋一抽,撸起袖子直接替换掉原来的UIWebview;这个过程中出现了这个莫名其妙的问题...(进入一个H5加载的界面,点击内容,跳转到另外一个H5界面,然后,点击H5的导航返回按钮,上重新加载上一个界面,直接告知加载失败); 加断点,打印出来的error信息是: Error Domain=NSURLErrorDomain...其实就是因为webview在之前的请求还没有加载完成,下一个请求发起了,此时webview会取消掉之前的请求,因此会回调到失败这里。...因此,在处理Webview的加载失败的回调时,要注意拦截掉被取消的请求。 解决方案: 在失败的方法里: ?

    3.4K40

    Phonegap项目中禁用WebViewBounce

    UIWebView是iOS SDK中一个最常用的控件,在PhoneGap中,默认也是使用UIWebView作为默认视图显示我们的HTML应用的。...在使用PhoneGap的项目中,默认WebViewBounce这个选项是打开的,所以使用手指向下或者向上滑动屏幕时,经常会看到页面底部和屏幕底部会出现一大片空白,然后松开手指后,再弹回去的特效。...经过分析,实际上iOS中的PhoneGap项目,只不过是默认初始化一个UIWebView,然后在这个视图中加在HTML资源,那么我们可以直接使用原生代码将Bounce禁用。...return [superwebViewDidFinishLoad:theWebView]; } 再重新编译之后,可以看到效果了吧 :) 参考资料: 1、Project Settings for iOS...2、What's new in Cordova iOS 2.6.0 3、iOS开发之UIWebView 4、UIWebView禁止Bounce回弹

    78310
    领券