2013-07-16 42 views
0

好吧,我在使用應用程序中的IBAction打開iBooks應用程序時遇到問題。我有它設置,以便當用戶按下一個按鈕,它會調用這個動作打開iBooks應用程序:在我的應用程序中使用IBAction打開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的bug?或者它是我的錯誤?

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

回答

0

好了,是我不好。我發現我使用了錯誤的URL方案。我從wiki.akosma得到的iBooks://不起作用,但是itms-books:能工作。

1

你必須檢查iOS是否可以在打開它之前打開一個URL。無論你的網址方案是錯誤的(就像你的情況),或者用戶甚至沒有安裝iBooks。即使您擁有正確的網址,除非用戶安裝了與該網址相對應的應用,否則無法打開它。

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

+1。感謝您添加此。我知道我已經有iBooks了,我創建的應用程序不會在AppStore上,但對於其他尋找答案的應用程序,這是一個很有價值的技巧(我把它放在我的代碼中,以防萬一)。 – CaptJak

相關問題