2012-10-20 8 views
8

मैं अपने आईफोन ऐप में मैप एप्लिकेशन पर काम कर रहा हूं।किसी iPhone ऐप से एक और ऐप लॉन्च कैसे करें

मेरे पास एक बटन go है।

जब उपयोगकर्ता इस विधि में इस बटन को क्लिक करता है तो मैं यह जांचना चाहता हूं कि उपयोगकर्ता ने अपने आईफोन पर waze एप्लिकेशन इंस्टॉल किया है या नहीं। यदि हां, तो वेज़ एप्लिकेशन पर नेविगेट करें अन्यथा आईफोन के डिफ़ॉल्ट मानचित्र ऐप को खोलें।

उत्तर

22

इस तरह से करने की कोशिश करें:

NSString *wazeAppURL = @"waze://"; 
NSString *mapsAppURL = @"maps://"; 

BOOL canOpenURL = [[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:wazeAppURL]]; 

NSString *url = canOpenURL ? wazeAppURL : mapsAppURL; 
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:url]]; 

यहाँ, canOpenURL अगर Waze ऐप्लिकेशन आपके iPhone पर स्थापित है आप परीक्षण करने के लिए अनुमति देता है। अगर आईफोन यूआरएल खोल सकता है तो इसका मतलब है कि आपके पास पहले से ही ऐप है और यह इसे लॉन्च करेगा। अन्यथा यह डिफ़ॉल्ट मानचित्र ऐप लॉन्च करेगा। सफारी नहीं बुलाया जाएगा। http://handleopenurl.com/

विशेष रूप से वेज़ के लिए, http://handleopenurl.com/scheme/waze

आशा है कि यह मदद करता है:

+0

नमस्ते अगर हम यूआरएल खोलते हैं तो नियंत्रण सफारी जायेगा और जहां मुझे ऐप-स्टोर यूआरएल या किसी और चीज को यूआरएल मिलेगा। मेरा एप्लिकेशन प्वाइंट मेरे ऐप से है, तो उपयोगकर्ता वेज़ के माध्यम से नेविगेट कर सकते हैं आवेदन उपयोगकर्ताओं के फोन में डिफ़ॉल्ट रूप से डिफ़ॉल्ट ऐप स्थापित किया गया है। क्या मैं उपयोगकर्ता के आईफोन में Waze ऐप इंस्टॉल कर सकता हूं। क्या आप इन सभी चीजों को विस्तृत कर सकते हैं। –

+1

मैंने अपना जवाब संपादित कर लिया है .. क्या यह आपके लिए अधिक स्पष्ट है? – bs7

+0

हाँ यह सफारी खोलने के बिना ठीक काम कर रहा है। धन्यवाद आप बहुत भिन्न हैं .... –

0

आईओएस अन्य अनुप्रयोगों को लॉन्च करने के लिए यूआरएल योजनाओं का उपयोग करता है।

यहाँ देखें http://mobiledevelopertips.com/cocoa/launching-other-apps-within-an-iphone-application.html

इसकी है कि भविष्य में एप्पल पराक्रम प्रदाता तंग एकीकरण अफवाह लेकिन मैं इसे पर भरोसा नहीं होता।

5

कोई एप्लिकेशन आपके

BOOL canOpenURL = [[UIApplication sharedApplication] 
         canOpenURL:[NSURL URLWithString:@"app://"]]; 
if (canOpenUrl) [[UIApplication sharedApplication] 
         openURL:[NSURL URLWithString:url]]; 

सभी URL ढूंढने के लिए कॉल करने के लिए, इस पृष्ठ पर जाने की जरूरत है खोलने के लिए।

+0

यह मेरे लिए काम किया .. धन्यवाद +1 –

0

ध्यान दें कि आईओएस पर आप Google मानचित्र पर भी जा सकते हैं - और क्वेरी स्ट्रिंग या जियोपॉइंट के साथ पास कर सकते हैं। यहां एक विशिष्ट जियोपॉइंट पर नेविगेट करने का एक उदाहरण दिया गया है:

if (self.mapView.userLocation.location) { 
    NSString *urlAsString = [NSString stringWithFormat:@"comgooglemaps://?q=%f,%f", self.mapView.userLocation.location.coordinate.latitude, self.mapView.userLocation.location.coordinate.longitude]; 
    if ([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:urlAsString]]) { 
     [[UIApplication sharedApplication] openURL:[NSURL URLWithString:urlAsString]]; 
    } 
} 

उपयोगकर्ता अनुभव को बढ़ाने के लिए बस एक सुझाव।