2017-01-10 1 views
3

iOSでは、URLがユニバーサルリンクか通常のウェブURLかどうかをプログラムで判断するにはどうすればよいですか?URLがユニバーサルリンクか通常のウェブURLかどうかをプログラムで判断するにはどうすればよいですか?

自分のiOSアプリからURL http://www.yelp.comを起動しようとしているとします。 (http://www.yelp.comは完全に登録されたユニバーサルリンクです。)

ケース1)ユーザーは、アプリがインストールされていません - >あなたは彼らにIN-APPのWebViewでWebサイトを表示したいです。

ケース2)ユーザーがアプリをインストールしていない - [[のUIApplication sharedApplication]のOpenURL:URL]を使用して直接Yelpのアプリへ>あなたのアプリとディープリンクのうち、起動します。アプリでWebビューを表示する代わりに あなたが仕事を得るすべてが文字列のURLです:「http://www.yelp.com」あなたの目標は、Yelpのであればインストールした場合はYelpのアプリに出て起動しますが、アプリ内のWebViewを提示することであるここ

は問題がありますインストールされていない。

注1:この質問はユニバーサルリンクについてのみです。 URLスキームを使用した回答はしないでください。

注2:この質問は、特にyelpアプリを起動することに関するものではありません。ソリューションは、インストールされたアプリケーションの普遍的なリンクであるかどうかを判断するためにどのURLでも動作するはずです。

これを行うことはできますか?

+0

使用canOpenURL方法インストールされていない場合)、webview画面を表示します。 – azimov

+0

どのような場合、与えられたURL「http:// www.yelp.com」に対してcanOpenURLがfalseを返しますか? (この問題で議論されている計画はない、btw) –

答えて

0

リンクが続いてUIApplicationOpenURLOptionUniversalLinksOnly

を使用して普遍的であるかどうかを検出は、ソリューションです:それは(Yelpのアプリができない場合、URLのスキームは、システムによって処理できるかどうかを確認するために

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