ios - 单击按钮时从 WKWebView 打印
问题描述
我在员工的后端登录中有一个打印配方 java 脚本功能。所以在普通浏览器中它调用打印窗口并且可以打印。
但在WKWebView
它不起作用。我阅读并阅读了论坛和苹果开发者文档中的问题,但找不到解决方案。
那么如何快速检测网站上的打印按钮按下,并调用打印所需区域的函数?
我附上了我的代码和网站的截图。第一张图片是您在应用程序中登陆的网站,然后您必须登录,然后点击订单,然后点击打印。屏幕截图附在这一行中):
我的代码是:
import UIKit
import WebKit
class MitarbeiterViewController: UIViewController, WKUIDelegate,UIWebViewDelegate {
var webView: WKWebView!
override func loadView() {
let webConfiguration = WKWebViewConfiguration()
webView = WKWebView(frame: .zero, configuration: webConfiguration)
webView.uiDelegate = self
view = webView
}
override func viewDidLoad() {
super.viewDidLoad()
let myURL = URL(string:"https://www.pizzeria-lo-straniero.de/mitarbeiterlogin")
let myRequest = URLRequest(url: myURL!)
webView.load(myRequest)
}
func printRecipeWebViewController(){
//MARK: - PRINT
let webviewPrint = webView.viewPrintFormatter()
let printInfo = UIPrintInfo(dictionary: nil)
printInfo.jobName = "page"
printInfo.outputType = .general
let printController = UIPrintInteractionController.shared
printController.printInfo = printInfo
printController.showsNumberOfCopies = false
printController.printFormatter = webviewPrint
printController.present(animated: true, completionHandler: nil)
}
解决方案
您好,欢迎来到 StackOverflow,您的要求当然是可能的,可以通过向 userContentController 注入脚本消息处理程序来完成。基本上你用一些 JS 注入你的 webview,这样它就可以让你监听某些动作,然后你可以在另一端执行所需的动作。这个详细的答案应该可以帮助您满足要求,请确保快速搜索以避免重复问题
https://stackoverflow.com/a/62743190/9343566。- 回答 1 https://stackoverflow.com/a/62743190/9343566。- 答案 2
推荐阅读
- perl - Perl 在不同的命名空间中导入包
- html - 在 CSS 和 HTML 中更改幻灯片中的图片大小
- c++ - 扩展的初始化列表和未初始化的成员
- c# - 如何暂时暂停实时数据图表的绘图更新
- export - 导出数据以用于 SaaS 中的分析
- model-view-controller - 使用 ORM 时在控制器上请求数据库数据是一种好习惯吗?
- python - 从元组的元组中消除重复值
- html - 在悬停时显示文本框(在表格中)
- swift - NSMutableAttributedString(Xcode)中的斜体和粗体在哪里?
- python-3.x - PyTorch 和 CUDA 驱动程序