好吧,我在使用应用程序中的 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://";
然后运行我的应用程序,我的按钮可以工作并且 map 会打开!
这是 iBook 的错误吗?还是我的bug?
FWIW,我使用的是 iOS 6 和 XCode 4.6.3
最佳答案
在打开 URL 之前,您必须检查 iOS 是否可以打开该 URL。您的 url 方案错误(就像您的情况一样),或者用户甚至没有安装 iBooks。即使您有正确的网址,也无法打开它,除非用户安装了与该网址对应的应用程序。
NSURL *url = ...
if ([[UIApplication sharedApplication] canOpenURL:url]) {
[[UIApplication sharedApplication] openURL:url];
}
else {
// can't open url
}
关于ios - 在我的应用程序中使用 IBAction 打开时 iBooks 应用程序崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17687412/