Я разрабатываю приложение iOS (с Xamarin). Я пытаюсь обрабатывать PDF-файлы с помощью своего приложения и получать доступ к их содержимому. Я добавил свое приложение в контекстное меню PDF-файлов («Открыть в ...»), как здесь https://i.stack.imgur.com/yowSw.png
<key>CFBundleDocumentTypes</key>
<array>
<dict>
<key>CFBundleTypeName</key>
<string>PDF</string>
<key>CFBundleTypeRole</key>
<string>Editor</string>
<key>LSItemContentTypes</key>
<array>
<string>com.adobe.pdf</string>
</array>
</dict>
</array>
Когда я нажимаю «Открыть в МОЕМ ПРИЛОЖЕНИИ», мое приложение открывается, и я пытаюсь получить доступ к содержимому массива байтов файла.
В SceneDelegate я добавил
[Export("scene:openURLContexts:")]
public void OpenUrlContexts(UIScene scene, NSSet<UIOpenUrlContext> urlContexts)
{
var path = urlContexts.AnyObject.Path;
var fileBytes = File.ReadAllBytes(path);
}
Путь выглядит так: file: /// private / var / mobile / Containers / Shared / AppGroup / XXX / File% 20Provider% 20Storage / sample.pdf
К сожалению, при чтении выдается исключение: System.UnauthorizedAccessException: «Доступ к пути» / private / var / mobile / Containers / Shared / AppGroup / XXX / File Provider Storage / sample.pdf "запрещен. '
Как мне получить доступ к байтовому содержимому файла, открытого таким образом?