2017-01-10 21 views
3

在iOS上,如何以編程方式確定URL是通用鏈接還是普通網址?如何以編程方式確定URL是通用鏈接還是普通網址?

假設您即將從您自己的iOS應用程序啓動URL http://www.yelp.com。 (http://www.yelp.com是一個完全註冊的通用連接。)

案例一)用戶沒有安裝該應用程序 - >你想顯示他們在IN-APP的WebView的網站。案例二)用戶確實安裝了應用程序 - >您希望通過使用[[UIApplication sharedApplication] openURL:URL]直接啓動應用程序並直接與yelp應用程序建立深層鏈接;而不是在應用程序中呈現web視圖。

這裏的問題是: 所有你一起工作是字符串URL:「http://www.yelp.com你的目標是,如果安裝到發射出去的叫喊應用程序,但提出一個在應用程序的WebView如果Yelp的是未安裝。

注1:這個問題只關於通用鏈接。請不要給出使用URL Schemes的答案。

注2:這個問題不是專門啓動yelp應用程序。該解決方案應該適用於任何網址,以確定它是否是已安裝應用程序的通用鏈接。

你能做到這一點嗎?

+0

使用canOpenURL方法來檢查URL的方案可以由系統來處理,如果不能(Yelp的應用未安裝),然後顯示webview屏幕。 – azimov

+0

在什麼情況下,canOpenURL會返回給定網址http:// www.yelp.com的false? (這個問題沒有討論任何方案,順便說一句) –

回答

0

檢測一個環節是普遍使用UIApplicationOpenURLOptionUniversalLinksOnly

以下是解決:

[[UIApplication sharedApplication] openURL:url 
             options:@{UIApplicationOpenURLOptionUniversalLinksOnly: @YES} 
          completionHandler:^(BOOL success){ 
           if(!success) { 
            // present in app web view, the app is not installed 
           } 
          }]; 
相關問題