2017-01-19 12 views
2

iOSメイン・アプリケーションでQuickBloxを使用しており、ココアポッド 'QuickBlox'、 '〜> 2.7.5を使用して機能を共有エクステンションに拡張したい'メインアプリケーションを開かずにバックグラウンドでメッセージを送信する必要があります。iOS Share ExtensionでQuickBloxを使用するために推奨されるプロセス

私は以下のコードを使用して、最初にテキストのみを送信するように設定しています。

[QBRequest logInWithUserLogin:USERNAME password:PASSWORD successBlock:^(QBResponse *response, QBUUser *user) { 
     if (user) { 
      user.login = USERNAME; 
      user.password = PASSWORD; 
      [[QBChat instance] connectWithUser:user completion:^(NSError * _Nullable error) { 

       QBChatDialog *chatDialog = [[QBChatDialog alloc] initWithDialogID:[settingsDict valueForKey:@"sendingID"] type:QBChatDialogTypeGroup]; 

       QBChatMessage *messagetosend = [QBChatMessage message]; 
       messagetosend.senderID = userQBID; 
       messagetosend.text = self.contentText; 
       messagetosend.dateSent = [NSDate dateWithTimeInterval:-12.0f sinceDate:[NSDate date]]; 

       [chatDialog joinWithCompletionBlock:^(NSError * _Nullable error) { 
        [chatDialog sendMessage:messagetosend completionBlock:^(NSError * _Nullable error) { 
         NSLog(@"%@",[error localizedDescription]); 
        }]; 

       }]; 
      } 
      ]; 
     } 
    } errorBlock:^(QBResponse * _Nonnull response) { }]; 

答えて

0

メッセージはREST経由で送信できます。 REST経由での送信は、チャットに接続してダイアログに参加する必要はありません。

NSUInteger senderID = //Current User ID 
QBChatMessage *message = [QBChatMessage message]; 
message.text = intent.content; 
message.senderID = senderID; 
message.markable = YES; 
message.deliveredIDs = @[@(senderID)]; 
message.readIDs = @[@(senderID)]; 
message.dialogID = dialogID; 
message.dateSent = [NSDate date]; 

[QBRequest sendMessage:message successBlock:^(QBResponse * _Nonnull response, QBChatMessage * _Nonnull createdMessage) { 

} errorBlock:^(QBResponse * _Nonnull response) { 

}]; 
+0

ご回答いただきありがとうございますが、_sendMessage_という名前のクラスメソッドはありません。 QB 2.7.5には何か別の選択肢がありますか? – Randy

+0

残念ながら、この機能はQB iOS SDK 2.9.1で追加されました。[変更点] –

+0

OK QB SDK 2.9.1で共有拡張を更新しようとしましたが、クラッシュしました 未知の例外 'NSInvalidArgumentException'、理由: '+ [QBRequest sendMessage:successBlock:errorBlock:]:0x3b735cクラスに送られた認識できないセレクタ' – Randy

関連する問題