在我的应用程序中使用IBAction打开iBooks应用程序崩溃

时间:2013-07-16 21:34:46

标签: ios objective-c ibooks

好吧,我在使用我的应用程序中的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中的网址:

NSString *stringURL = "maps://";

然后运行我的应用,我的按钮正常工作,地图就会打开!

这是一个iBook错误吗?或者这是我的错误?

FWIW,我正在使用iOS 6和XCode 4.6.3

2 个答案:

答案 0 :(得分:1)

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

NSURL *url = ...
if ([[UIApplication sharedApplication] canOpenURL:url]) {
    [[UIApplication sharedApplication] openURL:url];
}
else {
    // can't open url
}

答案 1 :(得分:0)

好的,所以我很糟糕。我发现我使用了错误的URL方案。我从wiki.akosma获得的iBooks://不起作用,但itms-books:可以正常工作。