اكتشاف برمجيًا ما إذا كان التطبيق مثبتًا على iPhone

StackOverflow https://stackoverflow.com/questions/3808691

سؤال

أنا في هذا الموقف حيث يتعين عليّ عرض زر يقول "Open MyApp" (إذا تم تثبيت MyApp على الجهاز) أو يقول "تنزيل MyApp" (إذا لم يتم تثبيت MyApp على الجهاز) في تطبيق iPhone. للقيام بذلك ، أحتاج إلى اكتشاف ما إذا كان قد تم تثبيت تطبيق (مع عنوان URL مخصص معروف) على الجهاز. كيف يمكنني أن أفعل هذا؟ شكرا لك مقدما.

هل كانت مفيدة؟

المحلول

تم تحديثه في 8 يناير 2014 - 3 أشياء يمكنك القيام بها

كان علي فعلاً القيام بذلك لعميل مرة أخرى. أرادوا أن يتمكن المستخدمون من فتح تطبيقهم الثاني من التطبيق الرئيسي إذا تم تثبيته.

هذا هو استنتاجي. استخدم ال canOpenURL طريقة للتحقق مما إذا كان التطبيق مثبتًا أو/ثم استخدم openURL طريقة ل

  1. افتح التطبيق المثبت على جهاز iOS
  2. اصطحب المستخدم إلى متجر التطبيقات الذي يشير إليه مباشرة إلى التطبيق/قائمة تطبيقات المطورين الخاصة بك
  3. اصطحبهم إلى موقع ويب بدلاً من ذلك

جميع عينات التعليمات البرمجية متاحة لكل سيناريو

//Find out if the application has been installed on the iOS device
- (BOOL)isMyAppInstalled { 
    return [[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"nameOfMyApp:"]]; 
} 

- (IBAction)openOrDownloadApp { 
    //This will return true if the app is installed on the iOS device
    if ([self myAppIsInstalled]){
        //Opens the application
        [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"nameOfMyApp:"]]; 
    } 
    else { //App is not installed so do one of following:

        //1. Take the user to the apple store so they can download the app
        [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"itms://itunes.com/apps/nameOfMyApp"]]; 

        //OR

        //2. Take the user to a list of applications from a developer
        //or company exclude all punctuation and space characters. 
        //for example 'Pavan's Apps'
        [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"itms://itunes.com/apps/PavansApps"]];

        //OR

        //3. Take your users to a website instead, with maybe instructions/information
         [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://www.pavan.com/WhyTheHellDidTheAppNotOpen_what_now.html"]];

    } 
}

اختر خيارًا واحدًا ، لقد أفسدتك للتو مع الاختيار. اختر واحدة تناسب متطلباتك. في حالتي ، اضطررت إلى استخدام الخيارات الثلاثة في مجالات مختلفة من البرنامج.

نصائح أخرى

إذا كان مخطط URL لتطبيقك هو "MyApp:" ، ثم

BOOL myAppInstalled = [[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"myapp:"]];

(يتطلب iOS 3.0.)

للتحقق من التثبيت في الجهاز أم لا

1) في info.plist إضافة lsapplicationQueriessChemes على النحو الوارد أدناه على سبيل المثال

enter image description here

2) وفي أنواع عناوين URL

enter image description here

3) الآن للتحقق من التثبيت أو لا

- (IBAction)openAppPressed:(UIButton *)sender {
    NSString *urlString = @"XYZAPP://";
    NSURL *url = [NSURL URLWithString:urlString];

    if ([[UIApplication sharedApplication] canOpenURL:url]) {
        [[UIApplication sharedApplication] openURL:url];
    }
    else {
        [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"itunes link for download app"]];
    }
}

يمكنك إضافة علامة ميتا بسيطة في رأس أي صفحة تحتاج إلى هذا التنفس.

لمزيد من المعلومات، انتقل هنا:

http://developer.apple.com/library/ios/#documentation/appleapplications/reference/safariwebcontent/promotingappswithappbanners/promotingappswithappbanners.html

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top