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

如何为自定义应用的Share菜单添加Print选项?

为自定义应用添加Share菜单中的Print选项

iOS 平台实现方法

  • 声明支持的可打印内容类型
    在应用的Info.plist中配置支持的文档类型,让系统识别你的应用可以分享可打印内容。比如添加CFBundleDocumentTypes数组,声明支持PDF、图片、文本等类型:

    <key>CFBundleDocumentTypes</key>
    <array>
        <dict>
            <key>CFBundleTypeName</key>
            <string>PDF Document</string>
            <key>LSItemContentTypes</key>
            <array>
                <string>com.adobe.pdf</string>
            </array>
        </dict>
        <dict>
            <key>CFBundleTypeName</key>
            <string>Image Files</string>
            <key>LSItemContentTypes</key>
            <array>
                <string>public.image</string>
            </array>
        </dict>
    </array>
    
  • 正确构建分享控制器
    触发分享时,使用UIActivityViewController传入可打印的内容对象(文件URL、图片、文本等),系统会自动匹配并显示Print选项。示例Swift代码:

    // 以分享本地PDF文件为例
    guard let fileURL = Bundle.main.url(forResource: "sample", withExtension: "pdf") else { return }
    let activityVC = UIActivityViewController(activityItems: [fileURL], applicationActivities: nil)
    
    // iPad适配(可选)
    if let popover = activityVC.popoverPresentationController {
        popover.sourceView = yourShareButton
        popover.sourceRect = yourShareButton.bounds
    }
    
    present(activityVC, animated: true)
    
  • 处理自定义内容的打印适配
    如果分享的是自定义格式内容,需要实现UIActivityItemSource协议,将内容转换为系统可识别的可打印格式(比如PDF或图片),再提供给分享控制器。

Android 平台实现方法

  • 构建正确的分享Intent
    创建ACTION_SEND类型的Intent,设置对应的MIME类型(如application/pdf、image/png),并传入内容的Uri,系统会自动加载支持该类型的分享选项,包括打印功能。示例Kotlin代码:
    // 分享本地文件Uri
    val fileUri = FileProvider.getUriForFile(context, "${packageName}.fileprovider", yourFile)
    val shareIntent = Intent(Intent.ACTION_SEND).apply {
        type = "application/pdf"
        putExtra(Intent.EXTRA_STREAM, fileUri)
        addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION)
    }
    startActivity(Intent.createChooser(shareIntent, "分享内容"))
    

关键注意事项

  • 确保分享的内容是系统可识别的可打印类型,否则Print选项不会出现;
  • 应用需拥有对应内容的访问权限(比如iOS的文件读取权限、Android的FileProvider配置),避免打印服务无法读取内容。

内容的提问来源于stack exchange,提问作者Gavin Wright

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 05:55:16