open iBooks from my app

后端 未结 3 616
孤独总比滥情好
孤独总比滥情好 2021-01-14 15:30

I have some PDF in my app. I want to provide an option to open those PDF in other third party e-readers app that might be installed on the device, like Stanza and iBooks.

相关标签:
3条回答
  • 2021-01-14 15:50

    First of all you will need to create a NSURL object like so:

    NSURL *url = [NSURL fileURLWithPath:file.FileName];
    
    file.FileName --> your local file path where the document is stored in the local db.
    
    UIDocumentInteractionController    *docController = [UIDocumentInteractionController interactionControllerWithURL:url];
    
    docController.delegate = self;
    
    [docController retain];
    
    [docController presentOpenInMenuFromRect:CGRectZero inView:self.view animated:YES];
    

    The following delegate methods will need to be implemented:

    -(void)documentInteractionController:(UIDocumentInteractionController *)controller willBeginSendingToApplication:(NSString *)application
    {
    
    }
    
    - (void)documentInteractionController:(UIDocumentInteractionController *)controller didEndSendingToApplication:(NSString *)application
    {
    
    }
    
    - (void)documentInteractionControllerDidDismissOpenInMenu:(UIDocumentInteractionController *)controller
    {
    
    }
    
    0 讨论(0)
  • 2021-01-14 16:06

    iBooks

    NSString *stringURL = @"itms-books:";
    
    NSURL *url = [NSURL URLWithString:stringURL];
    
    [[UIApplication sharedApplication] openURL:url];
    
    NSString *stringURL = @"itms-bookss:";
    
    NSURL *url = [NSURL URLWithString:stringURL];
    
    [[UIApplication sharedApplication] openURL:url];
    
    0 讨论(0)
  • 2021-01-14 16:07

    You don't need to detect the other apps, you need to know the url that can open them.

    A call like this:

    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://www.apple.com"]];
    

    Tells the phone to open the page in whatever app handles http/html requests which is safari. iBooks has their own url format which hopefully you can track down.

    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"ebook://iRobot.pdf"]];
    

    NOTE: that's not correct, just meant to illustrate a different url scheme.

    0 讨论(0)
提交回复
热议问题