gpt4 book ai didi

iOS10 iMessage : Unable to insert data into iMessage using MSConversation

转载 作者:可可西里 更新时间:2023-11-01 01:29:38 25 4
gpt4 key购买 nike

在我的项目中,我添加了 iMessage Extension,但我无法从 UITableview 发送所选数据(需要发送所选行数据)

声明

 var savedConversation: MSConversation?

我想在用户 didselectRow - Tableview 时发送文本,但它不会抛出任何错误,甚至不会转到 MSConversation 完成 block

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
let message = MSMessage()
let layout = MSMessageTemplateLayout()
layout.caption = "Win Notification"//post.title
layout.subcaption = "Can share now through win"
layout.trailingSubcaption = "share"
message.url = "http://.."
message.layout = layout


savedConversation?.insert(message, completionHandler: { (error) in
if error == nil {

//error nothing so do something

}else{


print("error in inserting -- \(error)")
}
})

引用链接https://www.captechconsulting.com/blogs/ios-10-imessages-sdk-creating-an-imessages-extension

https://discussions.apple.com/thread/7612113?start=0&tstart=0

最佳答案

这段代码对我有用

第一步

创建 iMessage 扩展

第二步

转到 MessagesViewController(由扩展创建)

class MessagesViewController: MSMessagesAppViewController  {

// ****This code written just for your sample reference********

override func viewDidLoad() {
let button = UIButton(type: .system)
button.sizeToFit()
view.addSubview(button)
loginButton.setTitle("Click to Insert Message!", for: [])
loginButton.addTarget(self, action: #selector(sendMessage(_:)), for: .touchUpInside)
}
}

在 iMessage 中插入消息

func sendMessage(_ sender:UIButton) {
let message = composeMessage(customMessage: "Too good!!! & Easy", caption: "Notify:", subCaption:"Caption", trailingCaptionn: "Subcaption", trailingSubcaptionn: "trailing sub caption")

self.activeConversation?.insert(message) // Inserts Message
}

使用可用选项创建消息[此方法返回消息]

func composeMessage(customMessage: String, caption: String, subCaptionn: String, trailingCaptionn: String, trailingSubcaptionn: String) -> MSMessage {
var components = URLComponents()

// create a query item from our custom message
let item = URLQueryItem(name: "MyCustomMessage", value: customMessage)

// put it into an array of query items
var items = [URLQueryItem]()
items.append(item)
components.queryItems = items

// tell messages to use the default message template layout
let layout = MSMessageTemplateLayout()
layout.caption = caption
layout.subcaption = subCaptionn
layout.trailingCaption = trailingCaptionn
layout.trailingSubcaption = trailingSubcaptionn
// create a message and tell it the content and layout
let message = MSMessage()
message.url = components.url!
message.layout = layout

// return it for sending
return message
}

检查此委托(delegate)是否收到消息

override func didReceive(_ message: MSMessage, conversation: MSConversation) {
// Called when a message arrives that was generated by another instance of this
// extension on a remote device.

// Use this method to trigger UI updates in response to the message.
guard let messageURL = message.url else { return }
guard let urlComponents = NSURLComponents(url: messageURL, resolvingAgainstBaseURL: false), let queryItems = urlComponents.queryItems else { return }

print("URL Components", urlComponents)
print("queryItems", queryItems)

for item in queryItems {
print("Received \(item.name) with value \(item.value)")
}

}




}

引用和帮助来源:https://www.hackingwithswift.com/ios10

关于iOS10 iMessage : Unable to insert data into iMessage using MSConversation,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39571141/

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