通过whatsapp ios 8分享图像

时间:2015-09-08 16:53:00

标签: ios swift whatsapp

我正在我的应用程序中捕获图像以及使用WHATSAPP通过按下RETRICA中的分享按钮来共享它。但我没有找到任何正确的方法。我使用了UIDocumentInteraction但它没有用。如何在IOS8中使用WHATSAPP的共享扩展来共享它。

我在使用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"

2 个答案:

答案 0 :(得分: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

答案 1 :(得分: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