2017-11-26 4 views
0

Ich habe einen Code geschrieben, um Text in das Eingabefeld Messages.app in meiner iMessage-Erweiterung einzufügen.Text in aktive Konversation in iMessage setzen

- (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); 
} 

Das seltsame daran ist, dass alle normalen Protokolle geschieht. Die App protokolliert "didSelect called", "1" und "2". Die Nachricht - die Google-URL - wird jedoch nicht eingefügt und die Fehlerprotokolle werden nicht angezeigt. Ich habe also keine Ahnung, was falsch läuft. Irgendeine Idee, was ich falsch mache?

+0

Wird [self activeConversation]! = Nil? –

+0

@ biloshkurskyi.ss Ich habe 'NSLog (@ "self.activeConversation! = Nil:% d", (self.activeConversation! = Nil)); 'hinzugefügt, was 0 zurückgibt. Es ist in der Tat null. – user4992124

Antwort

0

Lösung # 1

  1. korrekte Referenz Senden von MessagesViewController auf Ihre View-Controller.
  2. prüfen activeConversation Wert für nil:

if ([self activeConversation] != nil) { 
    [[self activeConversation] insertText:@"Some text" completionHandler:^(NSError * _Nullable error) { 
     NSLog(@"error: %@", error.localizedDescription); 
    }]; 
} else { 
    NSLog(@"Conversation is nil"); 
} 

Lösung # 2

  1. erstellen Singleton in iMessage Erweiterung Namensraum.
  2. In MessagesViewController in - (void)viewDidLoad Setup Bezug auf Ihre MSConversation: [[Conversation shared] activeConversation] = [self activeConversation];
  3. Verwenden [[Conversation shared] activeConversation] insertText: .... ]; für Nachrichten von allen Controllern zu senden.
+0

Aber der Code, den ich ausführe, befindet sich im 'MSMessagesAppViewController', also sollte' activeConversation' nicht einmal 'nil' sein. Das ist das Problem hier, denke ich. – user4992124

+0

@ user4992124 Versuchen Sie, das Testprojekt auszuführen: [AudioMessages] (https://github.com/sergVn/AudioMessages) –

Verwandte Themen