#swift #openurl
#swift #openurl
Вопрос:
Я сохраняю загруженный файл PDF во временный каталог на своем устройстве и получаю URL-адрес для результирующего файла:
file:///Users/colinbasnett/Library/Developer/CoreSimulator/Devices/A057DDAD-B116-424B-8383-442321530EEC/data/Containers/Data/Application/A0AEF93A-5B1D-4CB4-B39F-F6DFECEDD9E9/tmp/FF5C09A9-45CD-454E-B55A-4F5CEBFEBC7F-24875-000014B657DC6436/23659.pdf
Где fileURL
находится допустимый NSURL
объект, представляющий указанный выше путь, я называю это:
UIApplication.sharedApplication().openURL(fileURL)
и ничего не происходит.
Несмотря на это, следующий вызов возвращает true
:
UIApplication.sharedApplication().canOpenURL(fileURL) // returns true
В идеале это должно открываться в Safari или любом другом предпочтительном приложении браузера. Интересно, что я могу вручную открыть Safari, вставить этот каталог в адресную строку, и он сможет отображать PDF.
Я использую Swift 2.2 (пока не могу переключиться на 3, потому что зависимости не были обновлены).
Комментарии:
1. Я не пробовал, но эта статья ( useyourloaf.com/blog/openurl-deprecated-in-ios10 ) указывает на то, что openURL устарел в iOS 10. Это то, где вы работаете? У них есть код, показывающий, что вам нужно сделать (хотя в Swift 3, который вам нужно будет преобразовать обратно в 2.2).
2. Нет, я запускаю его на симуляторе iPad 2 на Xcode 7.3, поэтому он не имитирует устройство iOS 10.
Ответ №1:
Я думаю, проблема в том, что openURL()
требуется запустить отдельное приложение, но вы передаете file:
URL-адрес, который указывает на файл в вашей изолированной среде. Я подозреваю UIDocumentInteractionController
, что это может быть больше того, что вам нужно.