2016-04-05 29 views
0

iOSアプリには50以上のターゲットがあり、それぞれに独自のカスタムURLスキームが設定されています。ウェブビューからのリクエストが現在実行中のアプリのスキームと一致するかどうかを検出する必要があります。これを行うには、コードから現在のアプリのURLスキームを調べる必要があります。現在のアプリのURLスキームをプログラムで調べるにはどうすればよいですか?

同様の質問では、他のアプリからURLスキームを探すために質問することができますが、これは可能ではないようです。私は私のアプリ内から、自分のアプリのためのスキームを見つける必要があります。

私は、URLスキームに別のplist値を設定し、それをターゲットに含めないでください。

現在のアプリのURLスキームを取得する方法はありますか?

+0

ur app plistからURLスキームを取得できます。 –

答えて

4

これは私がこれを達成するために考え出した機能です。

- (BOOL)doesMatchURLScheme:(NSString *)scheme { 
    if([[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleURLTypes"]) { 
    NSArray *urlTypes = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleURLTypes"]; 
    for(NSDictionary *urlType in urlTypes) 
    { 
     if(urlType[@"CFBundleURLSchemes"]) 
     { 
     NSArray *urlSchemes = urlType[@"CFBundleURLSchemes"]; 
     for(NSString *urlScheme in urlSchemes) 
      if([urlScheme caseInsensitiveCompare:scheme] == NSOrderedSame) 
      return YES; 
     } 

    } 
    } 
    return NO; 
} 
関連する問題