كيف يمكنني الارتباط بتطبيقي في App Store (iTunes)؟

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

  •  03-07-2019
  •  | 
  •  

سؤال

أريد الحصول على ميزة في تطبيقي حيث يمكن للمستخدم إرسال بريد إلكتروني إلى صديق باستخدام عنوان URL الخاص بـ iTunes إلى تطبيقي.كيف يكون ذلك ممكنا؟

شكرًا.

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

المحلول

بدلاً من عناوين URL الطويلة والمربكة التي تراها عادةً، يمكنك إنشاء روابط App Store أبسط بكثير وأكثر منطقية.يحتوي متجر iTunes Store على تنسيق عنوان URL مخفي وهو أكثر منطقية.اعتمادًا على ما ترتبط به، تحتاج فقط إلى إنشاء عنوان URL بأحد هذه التنسيقات:

  1. اسم الفنان أو اسم مطور متجر التطبيقات: http://itunes.com/Artist_Or_Developer_Name
  2. اسم الألبوم: http://itunes.com/Artist_Name/Album_Name
  3. تطبيقات: http://itunes.com/app/App_Name
  4. أفلام: http://itunes.com/movie/Movie_Title
  5. تلفزيون: http://itunes.com/tv/Show_Title

ما عليك سوى تضمين عنوان URL بهذا التنسيق في نص البريد الإلكتروني الذي تقوم بإنشائه.

(لاحظ أن المسافات قد تسبب مشكلات، لكنني وجدت أن حذفها كان مفيدًا بالنسبة لي - http://itunes.com/app/FrootGroove يعيد التوجيه إلى التطبيق المسمى "Froot Groove".)

(لاحظ أيضًا أنه إذا لم ينجح هذا الأمر بالنسبة لك، فإن أداة إنشاء روابط iTunes هي كذلك هنا)

سيكون الكود الخاص بك شيئًا من هذا القبيل (مستخرج من الكود الخاص بي، مجهول المصدر ولم يتم اختباره)

NSString* body = [NSString stringWithFormat:@"Get my app here - %@.\n",myUrl];

#if __IPHONE_OS_VERSION_MIN_REQUIRED <= __IPHONE_2_2
[NSThread sleepForTimeInterval:1.0];
NSString* crlfBody = [body stringByReplacingOccurrencesOfString:@"\n" withString:@"\r\n"];
NSString* escapedBody = [(NSString*)CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault,  (CFStringRef)crlfBody, NULL,  CFSTR("?=&+"), kCFStringEncodingUTF8) autorelease];

NSString *mailtoPrefix = [@"mailto:xxx@wibble.com?subject=Get my app&body=" stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

// Finally, combine to create the fully escaped URL string
NSString *mailtoStr = [mailtoPrefix stringByAppendingString:escapedBody];

// And let the application open the merged URL
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:mailtoStr]];
#endif

يمكنك القيام بأشياء أفضل في iPhone 3.0، لكن لا يمكنني التحدث عنها بعد.

نصائح أخرى

في OS 3.0 يمكنك استخدام إطار MessageUI للقيام بذلك دون مغادرة التطبيق (باستخدام رمز جين باعتبارها تراجع لمرحلة ما قبل 3.0 الأجهزة):

- (void)sendEmail
{
    NSString* body = [NSString stringWithFormat:@"Get my app here - %@.\n",myUrl];

#if __IPHONE_OS_VERSION_MIN_REQUIRED <= __IPHONE_2_2
    Class mailClass = (NSClassFromString(@"MFMailComposeViewController"));
    if (mailClass != nil && [mailClass canSendMail])
    {
        MFMailComposeViewController *picker = [[MFMailComposeViewController alloc] init];
        picker.mailComposeDelegate = self;
        picker.subject = @"Get my app";
        [picker setToRecipients:[NSArray arrayWithObject:@"xxx@wibble.com"];
        [picker setMessageBody:body isHTML:NO];

        [self presentModalViewController:picker animated:NO];
        [picker release];
    } else {
        [NSThread sleepForTimeInterval:1.0];
        NSString* crlfBody = [body stringByReplacingOccurrencesOfString:@"\n" withString:@"\r\n"];
        NSString* escapedBody = [(NSString*)CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault,  (CFStringRef)crlfBody, NULL,  CFSTR("?=&+"), kCFStringEncodingUTF8) autorelease];

        NSString *mailtoPrefix = [@"mailto:xxx@wibble.com?subject=Get my app&body=" stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

        // Finally, combine to create the fully escaped URL string
        NSString *mailtoStr = [mailtoPrefix stringByAppendingString:escapedBody];

        // And let the application open the merged URL
        [[UIApplication sharedApplication] openURL:[NSURL URLWithString:mailtoStr]];
    }
#endif
}

#pragma mark -
#pragma mark Mail Composer Delegate
- (void)mailComposeController:(MFMailComposeViewController*)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError*)error 
{
    if (result == MFMailComposeResultFailed) {
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:[error localizedDescription] message:[error localizedFailureReason] delegate:nil cancelButtonTitle:NSLocalizedString(@"OK", @"OK") otherButtonTitles:nil];
        [alert show];
        [alert release];
    }
    [self dismissModalViewControllerAnimated:YES];
}

لاحظ أن صفك يجب أن تعتمد بروتوكول MFMailComposeViewControllerDelegate. يمكنك أيضا تضمين مرفقات، استخدام HTML في الجسم، وأكثر من ذلك.

ويمكنك الآن استخدام appstore.com/APP_NAME لإطلاق التطبيق في اي تيونز. وهذا يعمل على سطح المكتب وعلى أجهزة iOS. هذا لا يمكن الاعتماد عليها مثل الطرق الأخرى لكن. انظر الإجابة هنا كيفية إنشاء رابط الغرور لأبل AppStore؟

هذا الرمز ينشئ رابط متجر التطبيقات تلقائيًا بناءً على اسم التطبيق، لا يلزم أي شيء آخر، السحب والإسقاط:

NSCharacterSet *trimSet = [[NSCharacterSet characterSetWithCharactersInString:@"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLKMNOPQRSTUVWXYZ0123456789"] invertedSet];    
NSArray *trimmedAppname = [[NSString stringWithString:[[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleName"]] componentsSeparatedByCharactersInSet:trimSet];
NSString *appStoreLink = @"http://itunes.com/app/"; 
for (NSString *part in trimmedAppname) appStoreLink = [NSString stringWithFormat:@"%@%@",appStoreLink,part];
NSLog(@"App store URL:%@",appStoreLink);

ويعطيك رابط مثل http://itunes.com/app/angrybirds

وبالمناسبة، وتصل إلى التطبيق عن طريق المعرف الخاص به ويمكن الاطلاع من خلال زيارة متجر التطبيقات للتطبيق الخاص بك والنقر على "أخبر صديق" - قم بإرسال بريد إلكتروني إلى نفسك. لقد وجدت هذا أن تكون مفيدة للغاية.

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