2015-02-02 19 views
5

Come sappiamo con il lancio di iOS 8, la mela consente l'estensione della tastiera personalizzata. Nell'estensione della tastiera è possibile inviare immagini, GIF, ecc. In SMS utilizzando Copia immagine in clipboard.codeCome invio file audio tramite iMessage ios 8

UIPasteboard *pasteboard = [UIPasteboard generalPasteboard]; 
NSData *data= UIImagePNGRepresentation([UIImage imageNamed:@"so_close_disappointed_meme.png"]); 
[pasteboard setData:data forPasteboardType:@"public.png"]; 

Ora sto cercando di inviare file audio in iMessage come questa funzione reference .non so mela ci permetterà di inviare l'audio in iMessage? .so per Ho provato sopra approccio, ma non ha mostrato alcun pasta opzione per l'audio nella finestra SMS.

UIPasteboard *pasteboard = [UIPasteboard generalPasteboard]; 
NSString *path = [[NSBundle mainBundle] pathForResource:@"tune"ofType:@"mp3"]; 
NSURL *url = [[NSURL alloc] initWithString:path]; 
NSData *data = [NSData dataWithContentsOfURL:url]; 
[pasteboard setData:data forPasteboardType:@"public.mp3"]; 

Chiunque mi può suggerire come possiamo inviare il file audio utilizzando tastiera personalizzata extension.is possibile?

+0

Non ho mai saputo che questo fosse possibile su dispositivi iOS ma questo suona davvero bello! – PMARINA

risposta

10

Credo che si possa allegare direttamente il file a MFMessageComposeViewController. Ecco il documentation link di come potrebbe essere fatto.

Seguire i passaggi per farlo.

  1. Verificare se il file possono essere inviati utilizzando UTI file usando + (BOOL)isSupportedAttachmentUTI:(NSString *)uti
  2. Trova file UTI. vale a dire il percorso del file
  3. Allega file per MFMessageComposeViewController utilizzando - (BOOL)addAttachmentData:(NSData *)attachmentData typeIdentifier:(NSString *)uti filename:(NSString *)filename

Per quanto la descrizione del metodo dice

Questo metodo è particolarmente utile quando l'allegato che si desidera aggiungere a un messaggio non lo fa avere una rappresentazione del file system. Questo può essere il caso, ad esempio, di contenuti audiovisivi composti a livello di codice.

Nota: Si dovrà convertire file audio in NSData

+0

Ho provato sopra l'approccio per l'invio di file audio direttamente via SMS, ma ancora non ho raggiunto il risultato desiderato ma mi aiuta molto e spero che dopo una breve ricerca otterrò il risultato desiderato. – jamil

+0

Assicurati di avere iMessage acceso e associato a un AppleID. Anche io potrei provare a creare un esempio se il tempo mi permette di :). Good Luck –

0

Il MFMessageComposeViewController non è la soluzione in questo scenario. Un'estensione per tastiera personalizzata non dovrebbe presentare un nuovo controller di visualizzazione, piuttosto basta incollare il file audio sul tavolo di montaggio. Ecco un codice veloce che ha funzionato per me

let path = NSBundle.mainBundle().pathForResource("audio", ofType:"wav") 
let fileURL = NSURL(fileURLWithPath: path!) 
let data = NSData(contentsOfURL: fileURL) 
let wavUTI = "com.microsoft.waveform-audio" 
UIPasteboard.generalPasteboard().setData(data!, forPasteboardType: wavUTI) 
+0

funziona per te? @Peter Argany – Maul