如何通过自定义 URL 将“属性列表”对象传递给 iOS 应用程序?

Posted

技术标签:

【中文标题】如何通过自定义 URL 将“属性列表”对象传递给 iOS 应用程序?【英文标题】:How can I pass a "property-list" object to an iOS Application via Custom URL? 【发布时间】:2013-03-22 17:16:59 【问题描述】:

ios 大师,

我正在创建一个响应自定义 URL 的 iOS 应用程序。在阅读处理自定义 URL 的文档(此处的 API 文档:application:openURL:sourceApplication:annotation:)时,我看到第 4 个参数是一个注释,定义如下:

注解 由源应用程序提供的属性列表对象,用于与接收应用程序进行信息通信。

但是,当我查看打开自定义 URL 的方法(此处的 API 文档:openURL:)时,无法定义“属性列表”对象。您只能指定 URL(它本身可能在查询字符串中有名称/值参数)。

如何将“属性列表”对象除了传递给应用程序的 URL?

【问题讨论】:

【参考方案1】:

注释选项适用于当用户使用UIDocumentInteractionController 引用由该应用创建的文档时打开的应用。

如果您希望从 UIWebView 中的自定义 URL 方案启动应用程序,那么这与您无关。

【讨论】:

【参考方案2】:

要完成@Richard 回答的第一部分,请在调用 presentPreviewAnimated 之前使用有效的属性列表设置 UIDocumentInteractionController 的注释属性:

NSURL *fURL = [[NSBundle mainBundle] URLForResource:@"Document" withExtension:@"pdf"];
if (fURL) 

    UIDocumentInteractionController *dIC;
    dIC = [UIDocumentInteractionController interactionControllerWithURL: fURL];
    dIC.annotation = @@"foo": @"bar";
    [dIC setDelegate:self];
    [dIC presentPreviewAnimated:YES];

【讨论】:

以上是关于如何通过自定义 URL 将“属性列表”对象传递给 iOS 应用程序?的主要内容,如果未能解决你的问题,请参考以下文章

Android - 如何将自定义对象传递给片段

使用 Express 服务器将多个参数传递给 Next.js 自定义 URL

如何将额外的参数传递给 django admin 自定义表单?

如何将三个或多个参数传递给自定义模板标签过滤器 django?

如何将自定义注释中的参数传递给库中的 WebSecurityConfigurer

如何在 agora web 中将自定义对象传递给远程流