Hoşgeldin. Soru sormak veya cevaplamak için hemen üye ol.
0 oy
6.3k kez görüntülendi
ios development kategorisinde tarafından
Normalde UIActivityController ile resim ve yazıyı aynı anda paylaşabiliyorum. Ancak söz konusu paylaşım platformu Whatsapp olunca durum biraz değişiyor. UIActivityController ile sadece texti kabul ediyor ve resmi almıyor. Bunun için  de UIDocumentInteractionController kullanmam gerekiyormuş. Ama bununla da sadece dosya paylaşımı oluyor bildiğim kadarıyla

Paylaşımlar için her iki yolu nasıl birleştirebilirim ? Apple photos uygulamasındaki gibi. Orada tam istediğim etki söz konusu. Nasıl gerçekleştirebilirim aynısını acaba ?

1 cevap

+1 oy
tarafından
tarafından seçilmiş
 
En İyi Cevap

doğrudur whatsapp'la bir dosya paylaşmak istediğinizde UIDocumentInteractionController kullanmalısınız. ama dosya ve text'i aynı anda paylaşamazsınız, whatsapp'ın kendi dokümantasyonunda bile böyle bir şey yok.
hatta açıp inceledim acaba bir değişiklik oldumu diye ama yok.
Zaten whatsapp içerisinden göndermek için seçtiğiniz dosyaya ancak bir başlık ekleyebiliyorsunuz, mesaj değil.
dolayısıyla dosya ve text mesajını ayrı ayrı paylaşmalısınız.

tarafından
Teşekkür ederim. O zaman şöyle sorayım:
Bir resmi paylaştırırken normalde UIActivityController'i kullanıyorum. Çünkü tüm paylaşım seçeneklerini görebiliyorum böylelikle (Email, Mesaj, Facebook, Twitter gibi) Ancak UIDocumentInteractionController'i kullanınca sadece Facebook ve Whatsapp ile sınırlanıyorum ve text paylaşma imkanı da kalmıyor.

Bu durumda nasıl bir kontrol yapıp bir taşla iki kuş vurabilirim sizce ?  Yani kullanıcı whatsapp'i seçerse sadece resim olarak paylaşsın ancak diğer email gibi şeyleri seçerse, "text, link ve image" dan oluşan  içeriği paylaşsın.

Bunu nasıl kontrol edip gerçekleştirebilirim?
tarafından
+1
whatsapp'da text paylaşmak için herhangi bir controller kullanmadan şöyle bir şey yapabilirsiniz mesela;


if let whatsAppUrl:NSURL = NSURL(string: "whatsapp://send?text=HelloWorld") {
                    if UIApplication.sharedApplication().canOpenURL(whatsAppUrl) {
                        UIApplication.sharedApplication().openURL(whatsAppUrl)
                    } else {
                        println("no whatsapp found on this device")
                    }
                }
tarafından
Çok teşekkür ederim. Anladığım kadarıyla benim için çözüm özel bir paylaşım ekranı oluşturmak, sonra bu ekranda  paylaşıma sunacağım platformları  kullanıcıya göstermek (Mail, Facebook, Twitter, Instagram, Whatsapp gibi iconlar) olacak. Sizin bu güzel ve pratik kodlarınızı da whatsapp bölümünde kullanırım.
Teşekkürler.
tarafından
Tekrar merhaba Yasin bey,
aşağıdaki şekilde whatsapp üzerinde resim paylaşıyorum ama caption text ekleyemiyorum. Nasıl ekeleyebileceğim konusunda yardımınızı rica edebilir miyim ?

@IBAction func shareToWhatsapp(sender: UIButton) {
        let image = UIImage(named: "my_image") // replace that with your UIImage
 
        let filename = "myimage.wai"
        let documentsPath = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, false)[0] as! NSString
        let destinationPath = documentsPath.stringByAppendingString("/" + filename).stringByExpandingTildeInPath
        UIImagePNGRepresentation(image).writeToFile(destinationPath, atomically: false)
        let fileUrl = NSURL(fileURLWithPath: destinationPath)! as NSURL
 
        documentController = UIDocumentInteractionController(URL: fileUrl)
        documentController.delegate = self
        documentController.UTI = "net.whatsapp.image"
        documentController.presentOpenInMenuFromRect(CGRectZero, inView: self.view, animated: false)
    }
...