You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何移除UIPrintInteractionController中的复制和保存到文件选项

iOS 15 打印预览拦截「复制/保存到文件」弹窗方案

前置前提

你需要操作的是系统打印组件UIPrintInteractionController对应的交互逻辑,以下是两种可行实现方向:

方案1:流程前置拦截(无审核风险,优先推荐)

  • 第一步:提前校验打印机连接状态,在用户进入打印预览页、点击打印按钮前,先调用UIPrintInteractionController的isPrintingAvailable属性判断当前是否有可用的已连接打印机,若无可用设备,直接弹出你自定义的「请先连接可用打印机」提示框,不触发系统打印执行逻辑。
  • 第二步:替换系统预览页的原生打印按钮,你可以获取UIPrintInteractionController的预览页导航栏,将右上角的系统打印按钮替换为自定义按钮,自定义按钮的点击逻辑仅做打印机状态校验:

    校验通过时才调用系统打印执行方法print(animated:completionHandler:),校验不通过时只展示自定义提示,完全阻断系统默认弹窗的触发路径。


方案2:runtime 拦截弹窗(存在审核风险,仅做备用参考)

你可以通过hook UIViewController的presentViewController:animated:completion:方法,拦截系统弹窗的展示:

  • 每次有弹窗要展示时,判断当前要弹出的控制器是否为UIAlertController类型
  • 遍历该弹窗的所有action,检查是否同时包含标题为「复制」和「保存到文件」的选项
  • 若匹配成功则取消本次弹窗展示,替换为你自定义的提示内容即可

内容的提问来源于stack exchange,提问作者Tarun Kumar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 05:15:04