gpt4 book ai didi

ios - 如何在 Swift 语言中使用 XMPPStream XMPP 框架发送图像?

转载 作者:行者123 更新时间:2023-12-01 20:04:28 25 4
gpt4 key购买 nike

我用了

pod 'XMPPFramework'



在我的演示项目中。我建立了联系,并适本地放置了委托(delegate)方法。

我进行了简单的聊天,我在其中使用发送消息
 let msg = XMPPMessage(type: "chat", to: senderJID)
msg.addBody(message)
self.appDelegate.xmppStream.sendElement(msg)

在接收端,我正在做
func xmppStream(sender: XMPPStream!, didReceiveMessage message: XMPPMessage!) {

messageStr = messageStr + message.body()
print("Did receive message \(messageStr)")

}

现在我想发送图像。我在objective-c中浏览并找到了一些使用附件的代码,如下所示。
NSData *dataF = UIImagePNGRepresentation(SendImage);
NSString *imgStr=[dataF base64Encoding];

NSXMLElement *body = [NSXMLElement elementWithName:@"body"];
[body setStringValue:messageStr];

NSXMLElement *imgAttachement = [NSXMLElement elementWithName:@"attachment"];
[imgAttachement setStringValue:imgStr];

NSXMLElement *message = [NSXMLElement elementWithName:@"message"];
[message addAttributeWithName:@"type" stringValue:@"chat"];
[message addAttributeWithName:@"to" stringValue:chatWithUser];
[message addChild:body];
[message addChild:imgAttachement];

[self.xmppStream sendElement:message];

我的 Swift 代码,我从上面的 Objective-C 代码转换而来。
var dataF = UIImagePNGRepresentation(image)
var imgStr = dataF.base64Encoding()

let root = NSXMLElement(name: "find_sites")

var body = NSXMLElement.elementWithName("body")
body.stringValue = messageStr
var imgAttachement = NSXMLElement.elementWithName("attachment")
imgAttachement.stringValue = imgStr
var message = NSXMLElement.elementWithName("message")
message.addAttributeWithName("type", stringValue: "chat")
message.addAttributeWithName("to", stringValue: senderJID)
message.addChild(body)
message.addChild(imgAttachement)
self.xmppStream.sendElement(message)

如果我将此代码转换为 Swift,我会在 NSXMLElement 上收到错误,我应该怎么做,如何实现它。

我还阅读了 XMPPStream class ,我没有发现任何有成效的东西。

谢谢。

最佳答案

您可以使用 DDXMLElement 代替 NSXMLElement。

    let body = DDXMLElement.element(withName: "body") as! DDXMLElement
let imageAttachement = DDXMLElement.element(withName: "attachment", stringValue: imageStr!) as! DDXMLElement

let message = DDXMLElement.element(withName: "message") as! DDXMLElement
message.addAttribute(withName: "type", stringValue: "chat")
message.addAttribute(withName: "to", stringValue: receiver)
message.addChild(body)
message.addChild(imageAttachement)

关于ios - 如何在 Swift 语言中使用 XMPPStream XMPP 框架发送图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39305727/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com