获取我的应用程序通过openURL打开的文件的URL:

本文关键字:文件 URL openURL 我的 应用程序 获取 | 更新日期: 2023-09-27 18:06:07

我用自定义文件类型配置了我的应用程序。我在Info中添加了需要的信息。plist文件(文档类型和导出的uti)。现在,iOS识别出我的文件类型,并将其与应用程序相关联。因此,例如,当我打开邮件时,我看到我的文件是附件,我可以点击它并选择与我的应用程序一起打开。

我如何从我的应用程序得到文件的URL ?我试图在UIApplication上使用OpenUrl,但它不起作用。

有人知道怎么做吗?

获取我的应用程序通过openURL打开的文件的URL:

解决方案找到

我声明我需要Xamarin/c#的解决方案,但我要求一个标准的objective-c代码,以便稍后在c#中翻译,因为我找不到任何相关的内容。

最后这是我的解决方案:

AppDelegate.cs文件中我添加了这个方法:

public override bool OpenUrl (UIApplication application, NSUrl url, string sourceApplication, NSObject annotation)
{
     NSNotificationCenter.DefaultCenter.PostNotification (NSNotification.FromName ("OpenMyFile", url));
     return true;
}

然后在我的主控制器中,我在"ViewDidLoad"方法中添加了这个:

NSNotificationCenter.DefaultCenter.AddObserver ("OpenMyFile", openFileVoid);

在同一个类中,我添加了一个新方法:

public async void openFileVoid (NSNotification notification)
{
    NSUrl _filePath = (NSUrl)notification.Object;
    // Do what you need with this file path
}

希望能对别人有用!:)

我认为这与-[UIApplication openURL:]无关。

正如Apple Doc中所述:

您接收到关于要创建的文件的信息打开在application:willFinishLaunchingWithOptions:或应用程序的application:didFinishLaunchingWithOptions:方法委托。如果您的应用程序处理自定义文件类型,则必须实现此委托方法(而不是(applicationDidFinishLaunching:方法),并使用它初始化您的应用程序。

选项字典传递给application:willFinishLaunchingWithOptions:application:didFinishLaunchingWithOptions:方法包含信息关于要打开的文件。

你可以在文档中了解更多。