在 iMessage 中的活动对话中设置文本
Set text in Active Conversation in iMessage
我写了一些代码来将文本添加到我的 iMessage 扩展程序中的 Messages.app 输入字段。
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
NSLog(@"didSelect called");
NSLog(@"%d", 1);
[[self activeConversation] insertText:@"https://google.com" completionHandler:^(NSError * error) {
NSLog(@"Error happened");
NSLog(@"Error: %@", error);
}];
NSLog(@"%d", 2);
}
奇怪的是所有正常的日志都在发生。该应用程序将记录 "didSelect called"、“1”和“2”。但是,消息 - Google url - 没有被插入,错误日志也没有显示。所以我真的不知道出了什么问题。知道我做错了什么吗?
解决方案#1
- 将
MessagesViewController
中的正确引用发送到您的视图控制器。
- 检查
activeConversation
值为 nil:
if ([self activeConversation] != nil) {
[[self activeConversation] insertText:@"Some text" completionHandler:^(NSError * _Nullable error) {
NSLog(@"error: %@", error.localizedDescription);
}];
} else {
NSLog(@"Conversation is nil");
}
解决方案#2
- 在
iMessage
扩展名称 space 中创建 Singleton
。
- In
MessagesViewController
in - (void)viewDidLoad
设置参考
你的MSConversation
:[[Conversation shared] activeConversation] = [self activeConversation];
- 使用
[[Conversation shared] activeConversation] insertText: .... ];
用于从任何控制器发送消息。
我写了一些代码来将文本添加到我的 iMessage 扩展程序中的 Messages.app 输入字段。
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
NSLog(@"didSelect called");
NSLog(@"%d", 1);
[[self activeConversation] insertText:@"https://google.com" completionHandler:^(NSError * error) {
NSLog(@"Error happened");
NSLog(@"Error: %@", error);
}];
NSLog(@"%d", 2);
}
奇怪的是所有正常的日志都在发生。该应用程序将记录 "didSelect called"、“1”和“2”。但是,消息 - Google url - 没有被插入,错误日志也没有显示。所以我真的不知道出了什么问题。知道我做错了什么吗?
解决方案#1
- 将
MessagesViewController
中的正确引用发送到您的视图控制器。 - 检查
activeConversation
值为 nil:
if ([self activeConversation] != nil) {
[[self activeConversation] insertText:@"Some text" completionHandler:^(NSError * _Nullable error) {
NSLog(@"error: %@", error.localizedDescription);
}];
} else {
NSLog(@"Conversation is nil");
}
解决方案#2
- 在
iMessage
扩展名称 space 中创建Singleton
。 - In
MessagesViewController
in- (void)viewDidLoad
设置参考 你的MSConversation
:[[Conversation shared] activeConversation] = [self activeConversation];
- 使用
[[Conversation shared] activeConversation] insertText: .... ];
用于从任何控制器发送消息。