iOS- “在...中打开,”,访问文件时出现问题

问题描述 投票:0回答:1

我正在开发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>

当我单击“在我的APP中打开”时,我的应用程序打开,并尝试访问文件的字节数组内容。

在SceneDelegate中,我添加了

    [Export("scene:openURLContexts:")]
    public void OpenUrlContexts(UIScene scene, NSSet<UIOpenUrlContext> urlContexts)
    {
        var path = urlContexts.AnyObject.Path;
        var fileBytes = File.ReadAllBytes(path);
    }

路径如下:文件:///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”的访问被拒绝。'

如何访问以这种方式打开的文件的字节内容?

ios iphone xamarin xamarin.ios
1个回答
0
投票

在Info.plist中添加以下代码

<key>UTExportedTypeDeclarations</key>
    <array>
        <dict>
            <key>UTTypeConformsTo</key>
            <array>
                <string>public.data</string>
                <string>public.composite-content</string>
            </array>
            <key>UTTypeIdentifier</key>
            <string>com.adobe.pdf</string>
            <key>UTTypeDescription</key>
            <string>PDF</string>
            <key>UTTypeTagSpecification</key>
            <dict>
                <key>public.mime-type</key>
                <string>application/pdf</string>
                <key>public.filename-extension</key>
                <array>
                    <string>pdf</string>
                </array>
            </dict>
        </dict>

        <dict>
            <key>UTTypeConformsTo</key>
            <array>
                <string>public.data</string>
            </array>
            <key>UTTypeIdentifier</key>
            <string>com.microsoft.excel.xls</string>
            <key>UTTypeDescription</key>
            <string>Excel Document</string>
            <key>UTTypeTagSpecification</key>
            <dict>
                <key>public.mime-type</key>
                <string>application/vnd.ms-excel</string>
                <key>public.filename-extension</key>
                <array>
                    <string>xls</string>
                </array>
            </dict>
        </dict>
    </array>

如果仍然无法使用,您可以共享您的样本,以便我可以自己进行测试。

© www.soinside.com 2019 - 2024. All rights reserved.