Как получить исходный URL из -(bool) приложения openURL?
У меня есть приложение, которое открывает PDF из URL-адреса HTTP с помощью -(BOOL)application:openURL:
, Поэтому я иду в Safari, открываю PDF в Safari, а затем использую [Открыть в "MyAPP"]
Я хочу сохранить URL-адрес, чтобы, когда пользователь закрывает приложение и открывает его снова, 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"
Я получаю локальный URL после того, как pdf был импортирован в мое приложение, что-то вроде:
(NSString*) @"file:///<..dir..>/Developer/CoreSimulator/Devices/<..deviceID..>/
data/Containers/Data/Application/<..appID..>/Documents/Inbox/LastPDF.pdf"
Итак, мой вопрос:
Возможно ли в этом взаимодействии импорта файлов получить исходный URL-адрес, с которого был выполнен импорт? то есть " http://www.somewebsite.com/LastPDF.pdf"?
1 ответ
Вы не получите оригинальный URL. Когда вы решаете запустить приложение из Safari или Mail (или других приложений), чтобы открыть какой-либо файл, исходный файл копируется в изолированную программную среду вашего приложения, а полученный URL-адрес соответствует скопированному файлу в вашей изолированной программной среде. Вы не можете изменить это.
Нет никакого способа узнать, какой был оригинальный URL.
Вам нужно переместить файл с предоставленного URL-адреса в более подходящее место в комплекте вашего приложения (например, "Документы") и сохранить там ссылку на него. Когда ваше приложение перезапустится, вы сможете получить доступ к предыдущему файлу из этого локального местоположения.