XCODE/IOS-通过UIDocumentInteractionController共享
我还没有成功地通过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)
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")
}
}