Frage

Ich mag eine Funktion in meiner app haben, wo der Benutzer kann eine E-Mail an einen Freund mit der iTunes-URL zu meiner Anwendung senden. Wie ist es möglich?

Danke.

War es hilfreich?

Lösung

Anstatt der lange und verwirrender URLs, die Sie in der Regel sehen, können Sie App Store Links erstellen, die viel einfacher und logischer sind. Die iTunes Store hat ein verstecktes URL-Format, das viel logischer ist. Je nachdem, was Sie die Verknüpfung zu, brauchen Sie nur eine URL in einem dieser Formate zu erstellen:

  1. Name des Künstlers oder App Store Entwickler Name: http://itunes.com/Artist_Or_Developer_Name
  2. Name des Albums: http://itunes.com/Artist_Name/Album_Name
  3. Apps: http://itunes.com/app/App_Name
  4. Filme: http://itunes.com/movie/Movie_Title
  5. TV: http://itunes.com/tv/Show_Title

ist einfach eine URL von diesem Format in dem Körper der E-Mail die Sie erstellen.

(Beachten Sie, dass Räume kann zu Problemen führen, aber ich fand, dass sie ganz für mich gearbeitet Weglassen - http: // itunes .com / app / FrootGroove Umleitungen an der App "Froot Groove" genannt).

(Beachten Sie auch, dass, wenn dies nicht für Sie arbeiten, die iTunes Link Maker ist hier )

Ihr Code wird so etwas wie dieses (extrahiert aus mir, anonymisiert und nicht getestet)

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

Sie können es besser machen Dinge in iPhone 3.0, aber ich kann nicht über die, vor.

sprechen

Andere Tipps

In OS 3.0 Sie MessageUI Framework verwenden können, dies zu tun, ohne die App zu verlassen (Janes Code als Ausweich-Verwendung für Pre-3.0-Geräte):

- (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];
}

Beachten Sie, dass Ihre Klasse muss das MFMailComposeViewControllerDelegate Protokoll erlassen. Sie können auch Anhänge enthalten, verwenden Sie HTML im Körper, und vieles mehr.

Sie können nun appstore.com/APP_NAME verwenden eine App in iTunes zu starten. Dies funktioniert auf dem Desktop und auf iOS-Geräten. Dies ist nicht so zuverlässig wie andere Methoden jedoch. Siehe Antwort hier Wie Vanity-URL für Apple Appstore erstellen?

Dieser Code , um den App-Store-Link generiert automatisch basierend auf dem App-Namen, nichts anderes erforderlich ist, Drag & Drop :

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);

Es gibt Ihnen einen Link wie http://itunes.com/app/angrybirds

Durch die Art und Weise, die Verbindung zu dem Antrag die ID kann durch den Besuch der Apps Store für Ihre Anwendung, und klicken Sie auf die Schaltfläche „Tell-A-Friend“ gefunden werden - dann eine E-Mail an sich selbst senden. Ich fand das sehr informativ.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top