Автоматическое открытие файла .ibooks из приложения iOS (Swift)

Я хочу открыть определенный файл в приложении iBooks. Я использую UIDocumentsIntractionController для отправки этого файла в приложение iBooks. Мой код:

class ViewController : UIViewController {
 ...
 ...
     @IBOutlet var iBooksBtn: UIButton!
     @IBAction func book(sender: AnyObject) {
         let ibookPath = NSBundle.mainBundle().pathForResource("test1",ofType: "ibooks")!
         interactionController = UIDocumentInteractionController(URL: NSURL(fileURLWithPath:ibookPath))
         interactionController.UTI = "com.apple.ibooks"
         interactionController.presentOpenInMenuFromRect(CGRectZero,inView:self.iBooksBtn, animated:false)
    }
...
...

}

Итак, пока я храню этот файл в mainBundle, но в будущем я хочу загрузить его из Интернета. Итак, когда я нажимаю кнопку, мне нужно выбрать несколько результатов:

введите здесь описание изображения

Но я хочу открыть этот файл ТОЛЬКО с iBooks и без запросов на выбор приложения (как на картинке). Насколько я знаю, мне нужно использовать UTI для файла * .ibooks, я полагаю, что UTI, который я использовал, неверен. Спасибо за любую помощь. Также настраиваемая схема URL (ibooks: // и т. Д.) У меня не работает.


person pavel_s    schedule 01.12.2015    source источник
comment
UIDocumentsIntractionController покажет все приложения, зарегистрированные для обработки UTI. Таким образом, вы видите копию на листе. Теперь есть другой способ открыть iBooks, кроме UIDocumentsIntractionController. Также вы хотите убедиться, что у пользователя установлены iBooks, проверив схему URL iBooks.   -  person rckoenes    schedule 01.12.2015
comment
Привет! Вы нашли для этого решение?   -  person Ne AS    schedule 17.11.2016
comment
Есть ли у вас какое-нибудь решение, связанное с книгами?   -  person Rushabh    schedule 14.05.2020


Ответы (1)


Чтобы открыть iBooks, вы должны использовать настраиваемую схему URL:

Чтобы открыть библиотеку:

NSString *stringURL = @"ibooks://";
NSURL *url = [NSURL URLWithString:stringURL];
[[UIApplication sharedApplication] openURL:url];

Чтобы открыть магазин iBooks на определенной странице книги, вам необходимо добавить полный URL-адрес этой конкретной книги:

NSString *stringURL = @"itms-books://itunes.apple.com/de/book/marchen/id436945766";
NSURL *url = [NSURL URLWithString:stringURL];
[[UIApplication sharedApplication] openURL:url];

NSString *stringURL = @"itms-bookss://itunes.apple.com/de/book/marchen/id436945766";
NSURL *url = [NSURL URLWithString:stringURL];
[[UIApplication sharedApplication] openURL:url];
person Oleg Gordiichuk    schedule 01.12.2015
comment
Как я уже сказал, эта схема у меня не работает. Если я удалю книгу из приложения iBook, а затем попытаюсь снова открыть ее в своем приложении, у меня ничего не будет (приложение iBooks открыто, но моей книги нет) - person pavel_s; 01.12.2015