2011-01-21 57 views

回答

15

自定義URL應用程序被Apple接受。但是,如果設備上的多個應用程序註冊了相同的URL方案,則行爲未定義。從iOS Application Programming Guide開始,「如果有多個第三方應用程序註冊以處理相同的URL方案,則未定義哪個應用程序被挑選來處理該類型的URL。」

+0

但這並沒有回答這個問題。它有什麼作用??? – eggie5 2011-07-26 04:21:13

10

簡答:首先註冊URL的應用程序有時會打開,但無法經常打開。其他時間登記的第二個應用程序將打開,但經常失敗。基本上它失敗了很多,真的是「未定義」。使用http://handleopenurl.com/來避免。

龍答:

我創建了兩個應用程序,FirstApp和SecondApp,並註冊了相同的URL testURL兩種。

我加載FirstApp並且URL按預期工作,打開應用程序。

然後我加載SecondApp並且可怕的未定義行爲開始發生。目前,在iOS 7下,如果兩個應用程序具有相同的自定義URL註冊,它會彈出一個模式詢問

在「第一個應用程序名稱」中打開此頁面?

當您點擊打開選項時,它失敗,並且什麼也沒有發生。如果您再次點擊或輸入鏈接,那麼在我們的案例FirstApp中安裝的第一個應用將啓動。

因此實際上,第二個註冊的應用程序永遠不會被打開,並且第一個應用程序每兩次URL調用都會失敗。沒有理想的行爲。

更糟糕的是我刪除了這兩個應用程序,然後切換安裝它們的順序,結果不一致。有時它是一個應用程序,然後重新加載這兩個應用程序是另一個。行爲真的是「未定義的」。

最佳實踐是使用http://handleopenurl.com/來查看哪些URL已被註冊,並選擇了一個不會與其他應用衝突的URL。您無法「竊取」其他網址,因爲您無法確定自己的應用將會打開,而無法打開其他應用。

相關問題