获取活动的 MSConversation 以将消息发送到
Getting active MSConversation to send a message to
我正在构建一个独立的 iMessage 应用程序。我有一个继承自 MSMessagesAppViewController
的 UIViewController
。似乎 activeConversation
总是零。任何想法为什么?我正在模仿 Apple 如何在他们的示例冰淇淋项目中发送消息。
MSConversation *conversation = [self activeConversation];
if (conversation) {
MSMessageTemplateLayout *layout = [[MSMessageTemplateLayout alloc] init];
layout.caption = @"Caption";
layout.subcaption = @"subcaption";
MSMessage *message = [[MSMessage alloc] init];
message.URL = [NSURL URLWithString:@"www.example.com"];
message.layout = layout;
[conversation insertMessage:message completionHandler:^(NSError *error) {
if (error) {
NSLog(@"Error sending message %@", [error localizedDescription]);
}
}];
}
else {
NSLog(@"No &%#%&^# conversation found");
}
可能值得注意的是 UIViewController
嵌入在 UINavigationController
中。
原来你只能有一个 MSMessagesAppViewController
的实例,它实际上会与对话线程交互。其他控制器可以从 MSMessagesAppViewController
继承,但对话协议的 none 或 compact/expanded 转换委托方法将在这些实例中触发,只是扩展遇到的第一个实例。
我正在构建一个独立的 iMessage 应用程序。我有一个继承自 MSMessagesAppViewController
的 UIViewController
。似乎 activeConversation
总是零。任何想法为什么?我正在模仿 Apple 如何在他们的示例冰淇淋项目中发送消息。
MSConversation *conversation = [self activeConversation];
if (conversation) {
MSMessageTemplateLayout *layout = [[MSMessageTemplateLayout alloc] init];
layout.caption = @"Caption";
layout.subcaption = @"subcaption";
MSMessage *message = [[MSMessage alloc] init];
message.URL = [NSURL URLWithString:@"www.example.com"];
message.layout = layout;
[conversation insertMessage:message completionHandler:^(NSError *error) {
if (error) {
NSLog(@"Error sending message %@", [error localizedDescription]);
}
}];
}
else {
NSLog(@"No &%#%&^# conversation found");
}
可能值得注意的是 UIViewController
嵌入在 UINavigationController
中。
原来你只能有一个 MSMessagesAppViewController
的实例,它实际上会与对话线程交互。其他控制器可以从 MSMessagesAppViewController
继承,但对话协议的 none 或 compact/expanded 转换委托方法将在这些实例中触发,只是扩展遇到的第一个实例。