2016-03-07 148 views
4

我想在我的应用程序中使用iPhone中的共享表功能共享一些文件。我将文件显示在UIWebview中,当用户单击分享表时,我想显示选项(电子邮件,whats app等)以共享显示在UIWebView上的文件。我知道我们可以使用如何在IOS中使用共享表共享文件?

func displayShareSheet(shareContent:String) {                   
    let activityViewController = UIActivityViewController(activityItems: [shareContent as NSString], applicationActivities: nil) 
    presentViewController(activityViewController, animated: true, completion: {})  
} 

以共享字符串为例。如何更改此代码以共享文档?

在此先感谢。

回答

16

我想分享我的解决方案UIActivityViewController和共享文本作为图像文件。此解决方案适用于通过邮件共享,甚至保存到Dropbox。

@IBAction func shareCsv(sender: AnyObject) { 
    //Your CSV text 
    let str = self.descriptionText.text! 
    filename = getDocumentsDirectory().stringByAppendingPathComponent("file.png") 

    do { 
     try str.writeToFile(filename!, atomically: true, encoding: NSUTF8StringEncoding) 

     let fileURL = NSURL(fileURLWithPath: filename!) 

     let objectsToShare = [fileURL] 
     let activityVC = UIActivityViewController(activityItems: objectsToShare, applicationActivities: nil) 

     self.presentViewController(activityVC, animated: true, completion: nil) 

    } catch { 
     print("cannot write file") 
     // failed to write file – bad permissions, bad filename, missing permissions, or more likely it can't be converted to the encoding 
    } 

} 

func getDocumentsDirectory() -> NSString { 
    let paths = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true) 
    let documentsDirectory = paths[0] 
    return documentsDirectory 
}