如何从 - (bool)应用程序openURL获取源URL?

时间:2015-03-20 20:51:25

标签: ios openurl

我有一个使用-(BOOL)application:openURL:从HTTP网址打开PDF的应用。 所以我去Safari,在Safari中打开PDF,然后使用[打开" MyAPP"]

我想保存网址,以便当用户关闭应用并再次打开时,可以再次打开PDF。

-(BOOL)application:(UIApplication *)application openURL:(NSURL *)url {
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    // to store
    [defaults setObject:[url absoluteString] forKey:@"LastPDFURL"];
    [defaults synchronize];
    <...etc...>
    return YES;
}

当我从密钥LastPDFURL加载时,而不是获取:

(NSString*) @"http://www.someWebsite.com/LastPDF.pdf"

将pdf导入我的应用后,我得到了本地网址,例如:

(NSString*) @"file:///<..dir..>/Developer/CoreSimulator/Devices/<..deviceID..>/
data/Containers/Data/Application/<..appID..>/Documents/Inbox/LastPDF.pdf"

所以我的问题是:

是否可以在此文件中导入交互以获取执行导入的源URL?即&#34; http://www.someWebsite.com/LastPDF.pdf&#34;?

1 个答案:

答案 0 :(得分:0)

您没有获得原始网址。当您选择从Safari或Mail(或其他应用程序)启动应用程序以打开某种文件时,原始文件将复制到您应用程序的沙箱中,您获得的URL将是您沙箱中复制的文件。你无法改变这一点。

无法知道原始网址是什么。

您应该做的是将文件从提供的URL移动到应用程序包中的更合适的位置(例如文档),并在那里保留对它的引用。当您的应用重新启动时,您可以从该本地位置访问上一个文件。