从其他应用调用趣打印——Android 分享菜单与 iOS 分享表单
趣打印的两种角色
趣打印在手机上既是内容生产者(内部自己选文件打)也是内容消费者(接受其他 App 分享过来的内容)。后者依赖 Android 的 Intent 分享和 iOS 的 Share Sheet 机制。
Android 分享机制原理
Android App 之间的分享通过 Intent 组件通信。当一个 App 想要分享内容时:
源 App → 构造一个 Intent(ACTION_SEND)→ 携带文件 URI → 系统查找所有能处理这个 Intent 的 App → 展示在分享菜单中
趣打印在 AndroidManifest 中声明了能接受多种 MIME 类型文件的分享(文档、图片、PDF 等),所以任何 App 的分享菜单里都能看到 PrinterShare。
iOS 分享表单原理
iOS 的 Share Sheet 类似但实现不同。每个安装的 App 可以注册自己为分享扩展(Share Extension),当用户点分享按钮时 iOS 会展示所有已注册扩展。趣打印注册了文件类型的分享扩展,所以会出现在 iOS 的分享表单中。
实用示例场景
| 源 App | 分享操作 | 到趣打印后 |
|---|---|---|
| Chrome 网页 | 菜单 → 分享 → PrinterShare | 网页快照加载 → 直接打印 |
| Gmail 邮件 | 菜单 → 分享 → PrinterShare | 邮件正文加载 → 选正文或附件打印 |
| WPS 文档 | 打开文件 → 分享 → PrinterShare | 文档加载 → 选打印机打印 |
| 图库相册 | 选中照片 → 分享 → PrinterShare | 图片加载 → 打印 |
| 微信 | 打开文件 → 右上角菜单 → 用其他应用打开 → PrinterShare | 文件加载 → 打印 |
微信分享趣打印的特别说明
微信对文件分享做了自家的封装,不是直接走 Android 系统 Intent。常见做法:
- 在微信中打开文件 → 右上角「…」菜单
- 选择「用其他应用打开」或「保存到手机」
- 如果选「用其他应用打开」→ 从列表中找到趣打印 → 直接打印
- 如果选「保存到手机」→ 打开文件管理器 → 找到文件 → 分享到趣打印
分享后趣打印做了什么
当趣打印收到来自其他 App 的分享请求后:
- 在自己的界面中加载被分享的文件(显示文件名和预览缩略图)
- 你在此界面选打印机 → 配置 → 打印
- 或直接跳过配置,趣打印自动选择上次用的打印机(部分版本支持「一键打印」快捷方式)