2011-08-24 20 views
10

मैं कैसे निर्धारित कर सकता हूं कि किसी आईओएस डिवाइस के उपयोगकर्ता के पास एक विशिष्ट एप्लिकेशन इंस्टॉल है या नहीं? अगर मुझे एप्लिकेशन का नाम पता है तो क्या मैं किसी भी तरह canOpenURL का उपयोग कर सकता हूं?मैं कैसे निर्धारित कर सकता हूं कि उपयोगकर्ता के पास आईओएस ऐप इंस्टॉल है या नहीं?

उत्तर

11

यदि एप्लिकेशन कस्टम यूआरएल योजना का समर्थन करता है तो आप UIApplication-canOpenURL: देख सकते हैं। इससे आपको केवल यह बताना होगा कि उस यूआरएल योजना को खोलने में सक्षम एक आवेदन उपलब्ध है, जरूरी नहीं कि कौन सा आवेदन है। निरीक्षण करने के लिए कोई सार्वजनिक रूप से उपलब्ध तंत्र नहीं है कि उपयोगकर्ता ने अपने डिवाइस पर अन्य ऐप्स इंस्टॉल किए हैं।

यदि आप दोनों ऐप्स को नियंत्रित करते हैं तो आप अधिक विस्तार से उनके बीच संवाद करने के लिए साझा कीचेन या पेस्टबोर्ड का भी उपयोग कर सकते हैं।

8

आप इस तरह से जांच कर सकते हैं और साथ ही:

BOOL temp = [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"yourAppURL://"]]; 
            
if(!temp) 
{ 
    NSLog(@"INVALID URL"); //Or alert or anything you want to do here 
} 
+3

पहली पंक्ति मेरे लिए संकलित नहीं हुई थी, लेकिन यह किया गया: 'BOOL temp = [[UIAplplication sharedAplication] canOpenURL: [NSURL URLWithString: @" yourAppURL: // "]];' – newenglander

+0

मुझे खेद है लेकिन क्या ऐप यूआरएल है? क्या यह ऐप या कुछ का नाम है? – ColdSteel

0
तेज उपयोगकर्ताओं

के लिए

 let urlPath: String = "fb://www.facebook.com" 
    let url: NSURL = NSURL(string: urlPath)! 

    let isInstalled = UIApplication.sharedApplication().canOpenURL(url) 
    if isInstalled { 
     print("Installed") 
    }else{ 
     print("Not installed") 
    } 
0

फेसबुक इस https://github.com/facebook/facebook-ios-sdk/blob/master/FBSDKCoreKit/FBSDKCoreKit/Internal/FBSDKInternalUtility.m का उपयोग करता है आंतरिक रूप से, आप में एक ही

#define FBSDK_CANOPENURL_FACEBOOK @"fbauth2" 

+ (BOOL)isFacebookAppInstalled 
{ 
    static dispatch_once_t onceToken; 
    dispatch_once(&onceToken, ^{ 
    [FBSDKInternalUtility checkRegisteredCanOpenURLScheme:FBSDK_CANOPENURL_FACEBOOK]; 
    }); 
    NSURLComponents *components = [[NSURLComponents alloc] init]; 
    components.scheme = FBSDK_CANOPENURL_FACEBOOK; 
    components.path = @"/"; 
    return [[UIApplication sharedApplication] 
      canOpenURL:components.URL]; 
} 

कोड कर सकते हैं स्विफ्ट 3

static func isFacebookAppInstalled() -> Bool { 
    let schemes = ["fbauth2", "fbapi", "fb"] 
    let schemeUrls = schemes.flatMap({ URL(string: "\($0)://") }) 

    return !schemeUrls.filter({ UIApplication.shared.canOpenURL($0) }).isEmpty 
} 
संबंधित मुद्दे

 संबंधित मुद्दे