0

好的,我在我的应用程序中使用 IBAction 打开 iBooks 应用程序时遇到问题。我进行了设置,以便当用户按下按钮时,它会调用此操作来打开 iBooks 应用程序:

-(IBAction)openBooks:(id)sender
{
    NSString *stringURL = "iBooks://";
    NSURL *url = [NSURL URLWithString:stringURL];
    [[UIApllication sharedApplication] openURL:url];
}

这可以使整个应用程序切换它并且看起来很棒。我看到了我所有书籍都应该放在的书架,但是 iBooks 应用程序在我的书籍加载之前崩溃了!我写的应用程序没有崩溃,但 iBooks 失败了!

我正在通过 XCode 运行我的应用程序(该应用程序实际上并未分发到我的 iPad 本身),这就是 iBooks 崩溃的原因吗?当我触摸 iBooks 图标打开它(不是通过我的应用程序)时,它可以正常打开并且可以正常工作。但是,如果我像这样更改 IBAction 中的 url:

NSString *stringURL = "maps://";

并运行我的应用程序,我的按钮工作,地图打开!

这是 iBook 的错误吗?还是我的bug?

FWIW,我使用的是 iOS 6 和 XCode 4.6.3

4

2 回答 2

1

您必须在打开之前检查 iOS 是否可以打开网址。您的 url 方案是错误的(就像您的情况一样),或者用户甚至没有安装 iBooks。即使您拥有正确的 url,除非用户安装了与该 url 对应的应用程序,否则您也无法打开它。

NSURL *url = ...
if ([[UIApplication sharedApplication] canOpenURL:url]) {
    [[UIApplication sharedApplication] openURL:url];
}
else {
    // can't open url
}
于 2013-07-17T06:32:50.717 回答
0

好吧,我的错。我发现我使用了错误的 URL 方案。iBooks://我从wiki.akosma获得的内容不起作用,但itms-books:确实有效。

于 2013-07-16T22:22:02.957 回答