Xamarin.Forms.Platform.iOS.FormsApplicationDelegate OpenUrl 中的访问被拒绝

AccessDenied in Xamarin.Forms.Platform.iOS.FormsApplicationDelegate OpenUrl

我已经注册了我的文件类型,当我试图读取传递的文件时,我总是遇到拒绝访问异常。这是我当前的代码:

public override bool OpenUrl(UIApplication app, NSUrl url, NSDictionary options)
{
    var text = File.ReadAllText(url.Path); <- Exception here
    // todo: handle text
    return true;
}

在 android 上,我使用了 ContentResolver:

using (var inputStream = ContentResolver.OpenInputStream(Intent.Data))
{
    using (StreamReader reader = new StreamReader(inputStream))
    {
        string text = reader.ReadToEnd();
        Clipboard.SetTextAsync(text);
    }
}

但我没有找到在 iOS 上读取传递文件的等效项。

看看这个帖子: .

我把objective-C转成了c#,你可以在你的项目中试试。

    public override bool OpenUrl(UIApplication app, NSUrl url, NSDictionary options)
        {

            string urlPath = url.Path;

            NSData data = null;

            if (!NSFileManager.DefaultManager.IsReadableFile(urlPath)) {

                if (url.StartAccessingSecurityScopedResource())
                {
                    data = NSData.FromFile(urlPath);
                    url.StopAccessingSecurityScopedResource();
                }
            }
            else
            {
                data = NSData.FromFile(urlPath);
            }


            NSString str = NSString.FromData(data, NSStringEncoding.UTF8);
            return true;
        }