2011-12-20 59 views
4

我想開發一個URL,如果我的應用程序安裝,它將通過應用程序處理。如果它不是iPhone或我們的應用程序未安裝,我想重定向到網址。自定義的網址方案本地應用程序或網站

基本上完全一樣的應用程序商店網址工作。

+0

如果您的應用程序未安裝,您如何打開它並重定向到某個網址? – Sarah 2011-12-20 05:47:55

+0

我認爲OP想要實現他們自己的協議處理程序 – Cobby 2011-12-20 06:14:03

+1

我希望它能夠正確表現應用商店網址的工作原理。 http://itunes.apple.com/app/id468313085?mt=8將打開應用商店並轉發該id(如果在iPhone中打開)。如果在網絡上打開(未安裝iTunes),它將直接進入網絡。我正在過度看待事情。我只需要http://www.somedomain.com/thismeanssomething就可以將這種方式傳遞給我的iPhone應用程序(如果已安裝)或者直接轉到Web版本。 – kgibbon 2011-12-20 07:27:12

回答

0

您可以使用canOpenURL:檢查應用程序的方法是否可以打開給定的URL資源。更多關於Apple's Doc

希望它可以幫助你。

7

不幸的是,iOS上的自定義URL處理程序不能這樣工作。

您可以自定義網址方案,將打開你的應用程序,但你不能讓你的應用程序對某些域名指定的處理程序,以便在Safari中打開該域名將自動啓動您的應用程序。

需要明確的是,一個方案是在域名前位,如HTTP:,所以你可以讓你的應用程序的處理程序是啓動MYAPP網址:例如。顯然沒有真正的網址以myapp:開頭,除了您專門爲您的應用使用而設計的網址之外 - 就是這一點。

不幸的是,這些網址只適用於您的應用程序,如果您的應用程序未安裝,則無法在Safari中打開。 iTunes,谷歌地圖,Youtube等都在iPhone上以這種方式工作,因爲蘋果已經將它們硬編碼爲特殊情況,但它們並未使此機制可用於第三方應用程序。

註冊自定義方案,爲您的應用程序,請按照本教程:http://iosdevelopertips.com/cocoa/launching-your-own-application-via-a-custom-url-scheme.html

你可以做的,而不是建立一個普通的web網頁,其中使用JavaScript來檢測設備和用戶代理是什麼它是iPhone自動使用document.location ='myapp:...'自動重定向到應用程序的自定義方案url。我不確定如果您嘗試重定向到自定義網址計劃(如果應用程序未安裝),會發生什麼情況。它可能什麼都不做,這對你來說很理想,或者它可能會拋出一個錯誤或進入一個空白頁面,在這種情況下,你最好彈出一條消息,比如「點擊此處啓動應用程序或點擊此處從應用商店下載「,這是大多數網站似乎做的。

6

你必須建立一個正常的網站與普通的網址,然後重定向到一個URL像yourapp:// dosomething。 Web瀏覽器與Safari一樣,如果沒有應用程序(您的應用程序)處理協議「yourapp://」,則應忽略該URL。

重定向是例如可能與設置標題重定向在php:

<?php 
header('Location: yourapp://dosomething'); 
?> 

它也可能爲其他服務器腳本語言。您還應該在「MobileSafari」和其他瀏覽器之間加以區分,並在此處加以區分。

<?php 

/* detect Mobile Safari */ 

$browserAsString = $_SERVER['HTTP_USER_AGENT']; 

if (strstr($browserAsString, " AppleWebKit/") && strstr($browserAsString, " Mobile/")) 
{ 
    header('Location: yourapp://dosomething'); 
} 

?> 
+0

如果沒有'yourapp'方案,Safari會顯示錯誤 – 2014-01-22 16:47:19