iOS:在社交网络Swift中共享图像

时间:2016-11-06 18:55:50

标签: swift instagram whatsapp uidocumentinteraction

我在swift中运行示例应用程序。我需要从我的应用程序共享图像。 在Social framework的帮助下,我整合了FacebookTwitter。现在我不知道如何与InstagramWhatsApp

集成

分享按钮操作

  @IBAction func shareAcn(sender: UITapGestureRecognizer) {

    var documentController: UIDocumentInteractionController!

    let fileURL = NSBundle.mainBundle().pathForResource("smc", ofType: "png")
    documentController = UIDocumentInteractionController.init(URL: NSURL(fileURLWithPath: fileURL!))
    documentController.presentOptionsMenuFromRect(CGRectZero, inView: self.view, animated: true)
 }

WhatsApp的

 @IBAction func shareAcn(sender: UITapGestureRecognizer) {

   var documentController: UIDocumentInteractionController!
   let image = UIImage(named: "smc")
   let filename = "myimage.wai"
   let documentsPath = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, false)[0] as NSString
   let destinationPath = documentsPath.stringByAppendingString("/" + filename)
   UIImagePNGRepresentation(image!)!.writeToFile(destinationPath, atomically: false)
   let fileURL = NSURL(fileURLWithPath: destinationPath) as NSURL
   documentController = UIDocumentInteractionController.init(URL: fileURL)
   documentController.UTI = "net.whatsapp.image"
   documentController.presentOptionsMenuFromRect(CGRectZero, inView: self.view, animated: true)
 }

如果我选择[导入WhatsApp或复制到WhatsApp]应用程序崩溃。如果我选择WhatsApp,则“此项目无法发送”。

Instagram的

var instagramURL: NSURL = NSURL(string: "instagram://user?username=USERNAME")
if UIApplication.sharedApplication().canOpenURL(instagramURL) {
    UIApplication.sharedApplication().openURL(instagramURL)
}

没有任何代码正在运作。

我安装了Instagram并在我的测试设备中以我的用户身份登录,如果我运行,则Instagram未打开。

我不知道如何解决这个问题?请指导我。

1 个答案:

答案 0 :(得分:1)

确保您已在info.plist文件中设置了<key>LSApplicationQueriesSchemes</key> <array> <string>whatsapp</string> <string>instagram</string> </array> 条目,并声明了它尝试查询的方案。

canOpenUrl:@"instagram:"

不要包含&#34;://&#34;。

如果你确实包括&#34;://&#34; canOpenUrl:将返回NO。当您实际调用canOpenUrl时:您仍然必须包含冒号,即var instagramURL: NSURL = NSURL(string: "instagram://user?username=USERNAME")

您可以在this WWDC 2015 video中找到更多信息。

此外,这条线是可疑的:

USERNAME

我怀疑你是从Instagrams documentation复制了这个。如果是,请将var instagramURL: NSURL = NSURL(string: "instagram://app") 替换为您的实际用户名。

要隔离错误,您可能需要先尝试更简单的网址:

(