2015-09-08 1 views
1

Я собираю изображение в своем приложении и что его можно использовать с помощью WHATSAPP, нажав кнопку совместного доступа, как в RETRICA. Но я не нашел способ сделать это правильно. Я использовал UIDocumentInteraction, но это не сработало. Как я могу поделиться им с помощью расширения share WHATSAPP в IOS8.Поделитесь ими с помощью whatsapp ios 8

Я получил это исключение, используя UIDocumentInteractionController.

UIDocumentInteractionController: неверная схема (null). Поддерживается только файловая схема. '

это мой код

let image = UIImage(named: "nature") 
     let path = NSHomeDirectory().stringByAppendingPathComponent("Documents/whatsAppTmp.wai") 
     UIImageJPEGRepresentation(image!, 100.0)?.writeToFile(path, atomically: true) 

     let documentInteractionController = UIDocumentInteractionController(URL: NSURL(string: path)!) 
     documentInteractionController.UTI = "net.whatsapp.image" 
+1

вы пробовали с помощью UIActivityViewController? – MXV

ответ

0

Может быть, это может помочь вам:

let urlWhats = "whatsapp://app" 
if let urlString = urlWhats.stringByAddingPercentEncodingWithAllowedCharacters(NSCharacterSet.URLQueryAllowedCharacterSet()) { 
    if let whatsappURL = NSURL(string: urlString) { 

     if UIApplication.sharedApplication().canOpenURL(whatsappURL) { 

      if let image = UIImage(named: "image") { 
       if let imageData = UIImageJPEGRepresentation(image, 1.0) { 
        let tempFile = NSURL(fileURLWithPath: NSHomeDirectory()).URLByAppendingPathComponent("Documents/whatsAppTmp.wai") 
        do { 
         try imageData.writeToURL(tempFile, options: .DataWritingAtomic) 
         self.documentInteractionController = UIDocumentInteractionController(URL: tempFile) 
         self.documentInteractionController.UTI = "net.whatsapp.image" 
         self.documentInteractionController.presentOpenInMenuFromRect(CGRectZero, inView: self.view, animated: true) 
        } catch { 
         print(error) 
        } 
       } 
      } 

     } else { 
      // Cannot open whatsapp 
     } 
    } 
} 

Вы можете увидеть этот ответ Share image/text through WhatsApp in an iOS app

0

В Swift 3 используйте этот код

@IBAction func whatsappShareWithImages(_ sender: AnyObject) 
    { 

     let urlWhats = "whatsapp://app" 
     if let urlString = urlWhats.addingPercentEncoding(withAllowedCharacters:CharacterSet.urlQueryAllowed) { 
      if let whatsappURL = URL(string: urlString) { 

       if UIApplication.shared.canOpenURL(whatsappURL as URL) { 

        if let image = UIImage(named: "whatsappIcon") { 
         if let imageData = UIImageJPEGRepresentation(image, 1.0) { 
          let tempFile = URL(fileURLWithPath: NSHomeDirectory()).appendingPathComponent("Documents/whatsAppTmp.wai") 
          do { 
           try imageData.write(to: tempFile, options: .atomic) 
           self.documentInteractionController = UIDocumentInteractionController(url: tempFile) 
           self.documentInteractionController.uti = "net.whatsapp.image" 
           self.documentInteractionController.presentOpenInMenu(from: CGRect.zero, in: self.view, animated: true) 

          } catch { 
           print(error) 
          } 
         } 
        } 

       } else { 
        // Cannot open whatsapp 
       } 
      } 
     } 

    } 

Добавьте этот код в приложении «Plist»

<key>LSApplicationQueriesSchemes</key> 
     <array> 
      <string>whatsapp</string> 
     </array> 

Вы также можете обратиться к маленькому приложению для справки: https://github.com/nithinbemitk/iOS-Whatsapp-Share

+0

Не работает. Отправляет файл в whatsapp, но не может быть открыт как изображение. –