2014-01-27 66 views
2

在我的應用程序中,我配置了自定義URL方案「TestScheme」。一切正常,但有一個問題。iOS中的自定義Url方案在第一次使用Url方案時未打開

當我打開例如Safari中的「TestScheme:// xyz」,有時會打開一個對話框,詢問我是否想在應用程序中打開網站。當我打開時沒有任何反應。當我再次在safari中打開相同的網站時,應用程序可以正常打開而不顯示對話框。

有人可以解釋這種奇怪的行爲嗎?當我在對話框中打開時,爲什麼不打開應用程序?

編輯:我沒有得到這個問題,當重定向到HTML自定義URL方案與href。但只要在瀏覽器中輸入網址,問題仍然存在。

+0

這種行爲發生的內置iOS應用程序?或只是你的應用程序? –

+0

這只是我的應用程序 –

+0

我也面臨着這樣的問題。在我的情況下,我試圖用一個客戶urlscheme打開我的應用程序,有時它完全炒作。有時它只顯示消息,沒有任何反應。仍在試圖弄清楚。 –

回答

0

由於您正在開發中,聽起來好像每次編譯和重新部署應用程序時,都需要時間註冊系統。此外,部署後,您可能需要確保殺死Safari,以便加載自定義的Url方案。

只是我的兩分錢。

+0

我不認爲這是實際的問題,因爲在URL方案之後更改內容時不僅僅是第一次進入自定義url方案時,對話框還會出現。 –

+0

您是否對應用中的info.plist進行了必要的修改? URL類型/ URL標識符/ URL方案... 單擊取消時會發生什麼?我遇到了一個問題,我單擊該對話框上的取消,然後我需要刷新該頁面,以便能夠再次用相同的對話框提示。 – mircaea

+0

我們遇到同樣的問題。重新創建我們只是強制關閉應用程序並嘗試鏈接。 openURL中的處理程序永遠不會被調用。鏈接只是啓動應用程序,就像沒有傳入任何應用程序一樣。如果應用程序處於打開狀態,或者最近已打開應用程序,則它會處理得很好,並執行應有的操作。我也有這種情況發生在Android上......也許現在它是一件...仍在尋找答案。 –

0

如果應用程序從重新啓動以來從未運行過,強制關閉或在某個時間點被操作系統看門狗殺死,那麼我們唯一的辦法就是在didFinishLaunchingWithOptions調用中處理並檢查啓動選項。我還沒有在一個openURL教程,讓我想起了這個跌倒...

你可以看到URL的啓動選項,當你把一個小警告框的,因爲我什麼你得到的引擎蓋下在發射偷看還沒有弄清楚如何(或花時間弄清楚)如何掛鉤調試器並通過鏈接啓動應用程序。順便說一句我現在正在使用iOS 7.1.2來測試它。

UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Launch With Options" 
               message:[launchOptions description] 
               delegate:nil 
             cancelButtonTitle:@"OK" 
             otherButtonTitles:nil]; 
[alert show]; 
[alert release]; 

然後你可以看到發送了什麼,並決定採取行動/解析它。

[諷刺的是我有同樣的確切推出行爲在Android解決的問題,以及...我想我需要解析摞的onCreate ...]