【问题标题】:Getting the URL of a file my app is opening via openURL:获取我的应用通过 openURL 打开的文件的 URL:
【发布时间】:2014-05-31 12:45:34
【问题描述】:

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

如何从我的应用中获取文件的 URL?我尝试在UIApplication 上使用OpenUrl,但它不起作用。

有人知道怎么做吗?

【问题讨论】:

标签: c# ios xamarin


【解决方案1】:

找到解决方案

我声明我需要 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
}

我希望对某人有用! :)

【讨论】:

    【解决方案2】:

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

    正如Apple Doc 中所述:

    您会收到有关文件的信息 在application:willFinishLaunchingWithOptions:application:didFinishLaunchingWithOptions: 应用程序的方法 代表。如果您的应用程序处理自定义文件类型,您必须 实现这个委托方法(而不是 applicationDidFinishLaunching: 方法)并用它来初始化你的 应用。

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

    您可以在文档中了解更多信息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-07-10
      • 1970-01-01
      • 2016-06-18
      • 2019-06-24
      • 1970-01-01
      • 2015-03-16
      • 1970-01-01
      相关资源
      最近更新 更多