在iMessage中的Active Conversation中设置文本

时间:2017-11-26 18:13:36

标签: ios objective-c imessage-extension

我写了一些代码来将文本添加到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调用"," 1"和" 2"。但是,邮件 - Google网址 - 未被插入,并且未显示错误日志。所以我真的不知道出了什么问题。我知道我做错了什么?

1 个答案:

答案 0 :(得分:1)

解决方案#1

  1. MessagesViewController向视图控制器发送正确的引用。
  2. 检查activeConversation的值为nil:
  3. if ([self activeConversation] != nil) {
        [[self activeConversation] insertText:@"Some text" completionHandler:^(NSError * _Nullable error) {
            NSLog(@"error: %@", error.localizedDescription);
        }];
    } else {
        NSLog(@"Conversation is nil");
    }
    

    解决方案#2

    1. Singleton分机名称空间中创建iMessage
    2. MessagesViewController - (void)viewDidLoad设置参考中的MSConversation 您的[[Conversation shared] activeConversation] = [self activeConversation];[[Conversation shared] activeConversation] insertText: .... ];
    3. 使用print 用于从任何控制器发送消息。