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

标签 c# ios xamarin

我使用自定义文件类型配置了我的应用程序。我在 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;
}

然后在我的主 Controller 中,我将其添加到“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
}

希望对大家有用! :)

关于c# - 获取我的应用程序通过 openURL : 打开的文件的 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23970246/

相关文章:

ios - Swift 4 UIDatePicker 位置到底部

xamarin - 如何防止在 Xamarin 表单中快速单击按钮时多次触发事件

c# - 正则表达式 - PascalCase 到带下划线的小写

ios - 从变量设置的 NSURL

c# - 通过 BinaryReader 将字节数组解压缩为字符串会产生空字符串

iphone - 如何将我的应用程序的应用程序标识符与配置文件相匹配?

即使安装并启用了 Hyper-V,Visual Studio 中的 Android 模拟器也无法启动

c# - GTK# 图像按钮在运行时不显示图像

c# - 后台 worker : Make sure that ProgressChanged method has finished before executing RunWorkerCompleted

c# - 在 ASP.NET 的内存中存储一​​个简单的表?