2014-09-08 12 views
11

Ho un problema con la condivisione nella mia app, e mi chiedo se sto facendo qualcosa di sbagliato, o se questo è probabilmente un bug in iOS8.Condivisione con UIActivityViewController initWithActivityItems che producono risultati diversi su iOS7 e iOS8

Nella mia app ho la possibilità di condividere file, se il tipo di condivisione supporta gli allegati allega il file (come la posta elettronica), altrimenti condivide una stringa contenente un collegamento al file.

Nel creare l'attività condivisione faccio qualcosa come questo (ho semplificato notevolmente la mia propria implementazione, ma questo è un esempio):

-(void)showShareButtons:(BOOL)animated 
{ 
    NSString *textToShare = @"Foobar!"; 
    NSURL *myWebsite = [NSURL URLWithString:@"http://www.stackoverflow.com/"]; 

    NSString *localPath = [NSTemporaryDirectory() stringByAppendingPathComponent:"temp.foo"]; 
    NSURL *localFile = [NSURL fileURLWithPath:localPath]; 

    NSArray *objectsToShare = @[textToShare, myWebsite, localFile]; 

    UIActivityViewController *activityVC = [[UIActivityViewController alloc] initWithActivityItems:objectsToShare applicationActivities:nil]; 

    NSArray *excludeActivities = nil; 

    activityVC.excludedActivityTypes = excludeActivities; 

    [m_viewController presentViewController:activityVC animated:YES completion:nil]; 
} 

Su iOS7 ricevo le opzioni "Messaggio, Mail, Twitter e Facebook "per la condivisione, che è quello che mi aspetto.
-Per la posta elettronica e messaggi che utilizza la stringa, l'URL e il file locale

-Per Twitter e Facebook la sua solo la stringa e l'URL, in cui l'URL è presentato come un collegamento adeguato (non mostrati in un messaggio)

Su iOS8, ricevo solo le opzioni Messaggio e Posta, entrambe uguali a quelle di iOS7.

Sembra che ora lo stia limitando alla condivisione di opzioni che supportano ogni elemento, mentre prima avrebbe elencato elementi che ne supportano.

costruire Info:

Entrambi sono in costruzione in xCode6 Beta, e la destinazione di distribuzione è attualmente impostato per iOS7.0

iOS 8.0 (12A4345d) su un iPhone 5 (MD295C/A), 7.1 .2 (11D257) su 4S (MD241C/A)

modifica: Inoltre, se si imposta solo un'opzione, ad esempio una stringa, sono disponibili tutte le opzioni. Quindi sono in grado di condividerli con entrambi (vale a dire, sono abilitati)

+2

Anche questo lo sto facendo! Questo è molto strano Qualcuno ha qualche idea? – quantum

risposta

0

In realtà si suppone che sia un altro modo, in iOs8 UIActivity elencherà tutti i siti di condivisione installati sul dispositivo. Ad esempio: Facebook, Twitter, Vimeo ecc. In base al tipo di file inviato per il metodo initWithActivityItems:.

Ma in iOs7 solo posta, messaggio ecc. Sarà elencato in UIActivity, dove Facebook, Twitter, Vimeo verranno elencati solo se sono state registrate le impostazioni del dispositivo.