2010-01-19 91 views
38

我是一名新手iPhone開發人員,撰寫的應用程序可能會成爲網站的「移動版本」。iPhone應用程序:我可以通過網站中的鏈接打開應用程序嗎?

我想知道是否可以從網站中的鏈接啓動我的應用程序。因此,例如,有人進入我們的iPhone Safari網站,點擊鏈接,我們的應用程序啓動。

這可能嗎?
如果是這樣,我也可以「傳遞參數」給我啓動的應用程序?正如...
點擊不同的鏈接可以讓他們在發佈時在應用中獲得不同的東西。

謝謝!
Daniel

回答

51

某些應用程序具有啓動它們的URL方案。如果一個應用發佈了這個方案(或者如果你在他們的捆綁中挖掘),你可以啓動它。例如,一個假想的推特應用可能會啓動一個twitterapp://這裏+是+我的+推特網址。如果您使用正確的URL方案預裝應用程序,則也可以爲您的應用程序執行此操作。

下面是來自info.plist中的樣本URL方案:

<key>CFBundleURLTypes</key> 
<array> 
    <dict> 
     <key>CFBundleURLName</key> 
     <string>com.standalone.cooltwitterapp</string> 
     <key>CFBundleURLSchemes</key> 
     <array> 
      <string>twitterapp</string> 
     </array> 
    </dict> 
</array> 
+1

也會回答相同的問題。 +1 – 2010-01-19 17:50:08

+2

當您點擊「http:// youtube.com /」鏈接(即不是「youtube://」)時,Youtube應用程序是如何打開的? – andrewtweber 2013-02-28 17:04:20

+1

@andrewtweber操作系統專門處理:http:// developer。 apple.com/library/ios/#featuredarticles/iPhoneURLScheme_Reference/Introduction/Introduction.html#//apple_ref/doc/uid/TP40007899 – TofuBeer 2013-03-03 22:19:27

6

就可以了,使用custom URI schemes。但請注意,沒有應用程序的客戶端而不是能夠使用鏈接。

如果是這樣,我也可以「傳遞參數」到我啓動的應用程序?

再一次,是的。一旦你的應用程序已經註冊了一個給定的計劃,這都是你的。

+2

爲什麼不存儲一個cookie,說明客戶是否擁有應用程序,並根據cookie顯示一個鏈接或另一個鏈接。如果您沒有找到cookie,請顯示一個問題:「您是否安裝了XYZ應用程序?」如果他們說「不」,請立即安裝。 – iconoclast 2012-04-18 18:32:39

+1

提到的鏈接不再有效。 – Ju66ernaut 2016-12-12 18:37:53

+0

@ Ju66ernaut更新鏈接。謝謝。 – jensgram 2016-12-13 10:48:58

9

另外值得注意的是,當您的應用從URL啓動時,將調用application:openURL:sourceApplication:annotation:方法。詳情請見Apple's Docs

+1

我修復了您的鏈接(已損壞)。另外他們的文檔說handleOpenURL已被棄用,應該使用不同的openURL函數。 – eodabash 2012-02-13 19:05:25

+1

這是正確的,不推薦使用'handleOpenURL:'。改用'application:openURL:sourceApplication:annotation:'代替。 – 2013-12-02 20:00:57

相關問題