2013-06-10 19 views
56

UIActivityViewController'da e-posta paylaşımı için konu ayarlamak istiyorum ve ayrıca Twitter'da paylaşmak istiyorum. Paylaşmak istiyorsak Twitter'da biliyorum - 140 karaktere metin sıkıştırmamız gerekiyor. Birçok SO çözümünü kontrol ettim, ama hiçbir şey çalışmıyor.UIActivityViewController'da posta nasıl ayarlanır?

Bu sorun en son iOS sürümlerinde giderilmiştir? Diğer "çalışan çözümler"? E-posta konusunu kurmak için e-posta için kodunun altına

+0

Hayır kuvvetiyle 8.0+. Sadece aşağıdaki yorumumu kontrol edin ve doğru yolu özlediğimde bana bildirin. teşekkürler – Femina

cevap

76

görünüyor.

iOS 7 ve sonraki sürümlerinde, UIActivityItemSource protokolüne uygun bir nesneyi, belgelenen bir şekilde gerçekleştirmek için activityViewController:subjectForActivityType: yöntemini uygulayabilirsiniz.

+4

Evet, 'activityViewController: subjectForActivityType: 'doğru çözümdür. Tuhaf bir şekilde iOS Mail uygulaması nesneyi doğru bir şekilde kullanır ** ancak Google Inbox ** konuya ilişkin mesajı da kullanır ('subjectForActivityType' aracılığıyla sağlanan konu değil) –

+1

@LeslieGodwin gmail ile paylaşım için herhangi bir çözüm buldunuz mu? –

+0

@TimCamber Yukarıdaki şekilde denedim, yine de gmail'de paylaşım yoluyla sorun gösteriyor. Lütfen –

86

Kontrol: Burada

UIActivityViewController* avc = [[UIActivityViewController alloc] initWithActivityItems:@[@"Your String to share"] 
            applicationActivities:nil]; 
[avc setValue:@"Your email Subject" forKey:@"subject"]; 

avc.completionHandler = ^(NSString *activityType, BOOL completed) { 
    // ... 
}; 

hattını

[avc setValue: "E-posta Konu" @ forKey: "özne" @] ;

Kullanıcı, UIActivityViewController uygulamasında e-posta seçeneğini seçerse, konuyu "E-posta Konunuz" olarak yapar. emreoktem çözümü gönderme UIActivityViewController için setValue:forKey: belgesiz -etkili sanki ben yardımcı olur umarım

...

+0

Hoş geldiniz :) – emreoktem

+1

[activityVC setCompletionHandler:^(NSString * activityType, BOOL tamamlandı) { if ([activityType isEqualToString: UIActivityTypeMail]) { NSLog (@ "Mail type selected"); [activityVC setValue: @ "Paylaş!" forKey: "özne"] +; } }]; Onun çalışma emreoktem! – Femina

+0

@Meenu Konuyu * tamamlama işleyicisinden * önce belirlemelisiniz. – colinta

12

Swift 2.0+ için & ios

let title = "Title of the post" 
let content = "Content of the post" 
let objectsToShare = [title, content] 

let activityVC = UIActivityViewController(activityItems: objectsToShare, applicationActivities: nil)  
activityVC.setValue(title, forKey: "Subject") 
self.presentViewController(activityVC, animated: true, completion: nil) 
+0

, bir web sitesine bağlantı paylaşmak için işe yarıyor mu?[Başlık, içerik, bağlantı] gibi veya URL'nin içeriğin bir parçası olması ve e-posta istemcisinin onu ayrıştırması ve tıklanabilir olmasını sağlaması gerekir mi? – gadget00

İlgili konular