ios - 当我通过 IOS 中的 UIActivityViewController 共享 PDF base64 字符串时如何重命名文件名
问题描述
我从服务器得到 PDF base64 字符串,它看起来像这样:
“数据:应用程序/pdf;base64,JVBERi0x....”
现在我想分享这个文件。我正在使用 Cordova 社交分享插件,效果很好。但是如何分配文件名?现在,它只显示默认名称,例如“ PDF document.pdf ”
//activityItems is the base64 string
UIActivityViewController *activityVC = [[UIActivityViewController alloc] initWithActivityItems:activityItems applicationActivities:applicationActivities];
解决方案
将文件从 URL 保存到临时目录,然后在 UIActivityViewController 中使用它
let temporaryDir = FileManager.default.temporaryDirectory
let tempFilePath = temporaryDir.appendingPathComponent(pass the file name you want to show here)
do {
try? Data(contentsOf: pass the file URL here).write(to: tempFilePath, options: .atomic)
}
let activityViewController = UIActivityViewController(activityItems: [tempFilePath], applicationActivities: nil)
present(activityViewController, animated: true, completion: nil)
推荐阅读
- templates - 有没有办法让 CRUD(视图)Web 应用程序在 vs2019 中的 BLAZOR 应用程序“简单”?
- c++ - 为什么 GDB 观察点在转换为 std::array 的值类型时不会触发?
- r - 根据以相同字符开头的列创建新变量
- c# - ListView 元素的代码隐藏工具提示
- opencv - 在透明背景上绘制
- oracle-apex - 单击 Apex 5 中的按钮后如何保存复选框字段的选中状态?
- python - 如何计算 Pandas 数据框中新的“标准化”列?
- css - 如何摆脱 React 中的右边距?
- node.js - URL查询字符串中的连续双斜杠被解析为1个斜杠,NodeJs Express
- php - 如何检查是否已通过 WooCommerce 中的管理员修改了已付款订单