XCODE/IOS-通过UIDocumentInteractionController共享

XCODE/IOS-通过UIDocumentInteractionController共享,ios,swift,share,whatsapp,uidocumentinteractioncontroller,Ios,Swift,Share,Whatsapp,Uidocumentinteractioncontroller,我还没有成功地通过UIDocumentInteractionController共享任何内容,因为我已经阅读了几乎所有的教程和联机帮助,我希望找到一个解决方案: 这是我使用的代码: let fileName = "banner_1" let filePath = Bundle.main.path(forResource: fileName, ofType: "jpg")! let urlData = URL.init(fileURLWithPath: filePath)

我还没有成功地通过UIDocumentInteractionController共享任何内容,因为我已经阅读了几乎所有的教程和联机帮助,我希望找到一个解决方案:

这是我使用的代码:

    let fileName = "banner_1"
    let filePath = Bundle.main.path(forResource: fileName, ofType: "jpg")!
    let urlData = URL.init(fileURLWithPath: filePath)
    let nsData = NSData(contentsOf: urlData)

    let newFileName = "banner_1.jpg"
    let newFilePath = "\(NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0])/\(newFileName)"
    nsData?.write(toFile: newFilePath, atomically: true)
    let newUrlData = URL.init(fileURLWithPath: newFilePath)

    documentController?.url = urlData // or newUrlData
    documentController?.uti = "net.whatsapp.image"
    documentController?.presentOpenInMenu(from: CGRect.zero, in: self.view, animated: true)
每次我按下whatsapp或messenger共享菜单的一个互动程序时,都不会发生任何事情,我有以下错误日志:

2018-02-02 19:56:31.293849-0300 myapp[748:116227][core]SLComposeViewController initWithExtension:{id=net.whatsapp.whatsapp.ShareExtension}请求的服务类型:null

2018-02-02 19:56:31.296021-0300 myapp[748:116227][core]SLComposeViewController增补项:-用户信息:{ NSExtensionItemAttachmentsKey= {types=\n\public.jpeg\,\n\public.file url\\n} ; }

2018-02-02 19:56:31.883007-0300 myapp[748:116227][core]视图将出现

2018-02-02 19:56:31.883240-0300 myapp[748:116227][core]SLComposeViewController包括1个显式NSExtensionItems

2018-02-02 19:56:31.883311-0300 myapp[748:116227][core]SLComposeViewController即将实例化带有1个扩展项数组的远程视图控制器

2018-02-02 19:56:31.886583-0300 myapp[748:116227][core]视图显示

2018-02-02 19:56:31.989725-0300 myapp[748:116362][ops]集线器连接错误域=NSCOAERRORDOMAIN代码=4097连接到名为net.whatsapp.whatsapp.ShareExtension的服务用户信息={NSDebugDescription=连接到名为net.whatsapp.whatsapp.ShareExtension}

2018-02-02 19:56:31.991895-0300 myapp[748:116227][core]SLComposeViewController已完成实例化远程视图控制器null error Domain=NSCocoaErrorDomain Code=4097到名为net.whatsapp.whatsapp.ShareExtension的服务的连接UserInfo={NSDebugDescription=到名为net.whatsapp.whatsapp.ShareExtension的服务的连接}扩展请求标识符为空

2018-02-02 19:56:31.992325-0300 myapp[748:116227][core]主机:加载远程视图控制器失败,错误为:错误域=nscoaerrordomain Code=4097连接到名为net.whatsapp.whatsapp.ShareExtension的服务用户信息={NSDebugDescription=连接到名为net.whatsapp.whatsapp.ShareExtension}

2018-02-02 19:56:31.992433-0300 myapp[748:116227][core]未提交工作表,要求提前完成

2018-02-02 19:56:31.992479-0300 myapp[748:116227][core]SLComposeViewController完成,结果:0

2018-02-02 19:56:31.995770-0300 myapp[748:116227][core]SLComposeViewController跳过显式解雇,因为IsBeingDiscleed已为1 g

2018-02-02 19:56:32.001500-0300 myapp[748:116227][core]SLComposeViewController解除锁定

我在plist文件中添加了带有whatsapp的lsapplicationqueryschemes

我尝试使用UIDocumentInteractionControllerDelegate来查找是否存在任何奇怪的事件,但没有起到很大的作用

如果你有adea?!
谢谢你,Antoine。

这是一段工作代码,你可以通过它将你的图像共享给whatsapp,你只需将LSApplicationQueriesSchemes whatsapp添加到你的plist文件中,即可启用whatsapp共享

斯威夫特4


你是在安装了WhatsApp的真正iOS设备上运行的吗?是的,在我的iphone 6上安装了最后一个操作系统WhatsApp和Messenger谢谢,是的,我会先打开共享菜单,然后单击WhatsApp打开WhatsApp菜单。有一件事我还没有从whatsapp文档中弄明白:,那就是如何用独占扩展名.wai、.waa、.wam直接打开whatsapp。对于记录,通过使用UIDocumentInteractionController和UIDocumentInteractionControllerDelegate创建类修复了此项不能共享错误,然后在我的根控制器中实例化它。亲爱的,根据你的问题定义,我为你提供了与whaapp共享图像的工作解决方案,如果你仍然面临任何错误,请与我共享你的源代码,我可以检查并修复它。谢谢,我这里的问题已经解决,共享工作正常。我遇到的下一个问题是关于whatsapp API的。我在那里问了一个问题:。我在网上找不到任何人能成功地让它工作,或者说能让它工作。我想问题不在于代码。
func shareOnWhatsUp() {

    if UIApplication.shared.canOpenURL(URL(string: "whatsapp://app")!) {
        var documentInteractionController: UIDocumentInteractionController = UIDocumentInteractionController.init()
        let iconImage = UIImage(named: "IMG_1.jpg")
        let pathURL =   URL.init(fileURLWithPath: NSHomeDirectory() + "/Documents/whatsAppTmp.wai")

        do {
            try UIImageJPEGRepresentation(iconImage!, 1.0)?.write(to: pathURL)
        } catch {
            print(error.localizedDescription)
        }
        documentInteractionController!.url = pathURL
        documentInteractionController!.uti = "net.whatsapp.image"
        documentInteractionController!.delegate = self
        documentInteractionController!.presentOpenInMenu(from: CGRect(x: 0, y: 0, width: 0, height: 0), in: self.view, animated: true)
    }
    else {
        print("whatsup not installed")
    }
}