首页
学习
活动
专区
工具
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.1K20

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

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

1.4K20

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

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

5.2K10

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.2K40

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

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

3.3K50

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

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

9.6K50

判断js引擎是javascriptCore或者v8

来由   纯粹无聊,一直在搜索JavaScriptCore和SpiderMonkey一些信息,却无意中学习了如何在iosUIWebView中判断其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 到 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.7K20

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.1K40

iOS App 安全测试

Plist files 查看工具: Xcode(Mac),plistEditor(windows) 测试点: 文件中是否存储敏感信息,敏感信息是否加密 文件是否会被备份,备份泄露是否有风险 文件能否被用于跨过客户端逻辑校验...(如某个存储文件内容是客户端用于判断用户是否登陆,测试将该文件导出,拷贝至其他设备,查看能否越过登陆校验) b. sqlite 查看工具: sqlite manager 测试点: 文件中是否存储敏感信息...测试点: openURL方法实现中有没有对传入URL参数做校验 openURL有没有校验URL来源是否安全 四、 UIWebView UIWebView是基于Webkit,和Safari和MobileSafari...是使用同一个core framework,所以App中UIWebview 和浏览器一样,有可能存在XSS(Cross-Site Scripting)风险....测试点: 展示UIWebView内容是否存在用户输入部分,如有,是否可以通过修改输入注入javascript脚本 展示内容是否可能被攻击者篡改,返回含有注入脚本内容。

7.8K40

SimuLooker 一款用于iOS开发小工具

SimuLooker 前言 在iOS日常开发中,Xcode模拟器作为调试App必备工具,使用频度很高,一些app需要对数据进行持久化,因此就需要经常访问模App内Doucment,Cache,Preferences...输出文件路径,虽然容易,但仍让人感觉有一点点疲劳,(在Xcode8之前,可以使用插件实现文件路径查找),因此写了这个小工具,试试效果~  开发历程: 开发具体过程就不说了,简单谈一下Mac osx开发和iOS...开发大体差异吧~ 最明显是在开发osx 应用中遇到各种小问题,如果在网上搜寻,基本都是iOS方面的,Mac上比较少,而且就工具和社区来讲,也是多偏向于iOS 移动端(毕竟是移动开发火起来才带动了...Mac osx推广) 工具中,关于app crash收集方面,国内基本没有mac osx app方面的,像友盟,腾讯Bugly等SDK,仅支持iOS平台,如果大家有osx crash收集经验可以推荐或回复我啊...关于查看模拟器路径软件,比较知名是Simpholders,免费试用10天,供有兴趣同学参考.

52440
领券