获取我的应用程序通过openURL打开的文件的URL:
本文关键字:文件 URL openURL 我的 应用程序 获取 | 更新日期: 2023-09-27 18:06:07
我用自定义文件类型配置了我的应用程序。我在Info中添加了需要的信息。plist文件(文档类型和导出的uti)。现在,iOS识别出我的文件类型,并将其与应用程序相关联。因此,例如,当我打开邮件时,我看到我的文件是附件,我可以点击它并选择与我的应用程序一起打开。
我如何从我的应用程序得到文件的URL ?我试图在UIApplication
上使用OpenUrl
,但它不起作用。
有人知道怎么做吗?
解决方案找到
我声明我需要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:
方法包含信息关于要打开的文件。
你可以在文档中了解更多。