簡體   English   中英

使用 Copy In 從其他 iOS 應用程序接收文件

[英]Receiving files from other iOS apps with Copy In

我希望我的應用程序從 files.app 應用程序接收 .wav 文件。 我將 com.microsoft.waveform-audio 添加到 Info.plist 中的 Document Types 數組,並且我的應用程序在共享操作表中顯示為“Open In X”(而不是 Copy In )。 我想實際復制文件,而不是原地打開它們,操作系統不允許我復制這些文件(錯誤代碼 257)。 我正在嘗試復制 UIApplicationLaunchOptionsURLKey 路徑中的文件,但沒有成功。

launchOptions 字典在 applicationDidLaunch WithOptions 中也包含 RequireOpenInPlace=1。

如何讓其他應用程序使用 UIActivityViewController 將文件復制到我的?

如果您“就地”打開文件(而不是復制),您應該使 url 引用的資源可以被進程訪問。

在訪問文件之前嘗試調用url.startAccessingSecurityScopedResource() 然后您應該能夠復制該文件。

當您不再需要該文件時,不要忘記使用url.stopAccessingSecurityScopedResource()平衡調用。

參考: https : //developer.apple.com/documentation/foundation/nsurl#1663809

編輯:另一種解決方案可能是,如果您在 Info.plist 中將LSSupportsOpeningDocumentsInPlace設置為NO 然后您將始終在共享表中看到“復制到 XYZ”,因此系統會將文件復制到您的應用程序沙箱中的 Documents/Inbox 文件夾中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM