我正在使用Quickblox创建一个简单的聊天应用程序.
所以我将项目添加到XCode中,就像在本教程中一样:http://quickblox.com/developers/IOS-how-to-connect-Quickblox-framework
QBUsers类工作得很好,但是当我使用QBChat时,我开始遇到链接器错误:
体系结构i386的未定义符号:"operator delete(void*)",引自: - Quickblox中的[QBVideoChat initAudioCapture](QBVideoChat.o)"operator new(unsigned long)",引自: - Quickblox中的[QBVideoChat initAudioCapture]( QBVideoChat.o)"___ gxx_personality_v0",引自:Quickblox中的Dwarf异常展开信息(__eh_frame)(QBVideoChat.o)ld:未找到架构i386 clang的符号:错误:链接器命令失败,退出代码为1(使用 - v看看调用)
这是导致问题的那一行(如果我将其注释掉,链接器错误就会消失):
[[QBChat instance] setDelegate:self];
Run Code Online (Sandbox Code Playgroud)
发生问题的类实现以下协议:
<QBActionStatusDelegate, QBChatDelegate>
Run Code Online (Sandbox Code Playgroud)
这是我导入项目的框架列表:
-lxml2 -lresolv -lz -framework AVFoundation -framework CoreVideo -framework加速-framework CoreMedia -framework AudioToolbox -framework CoreData -framework CoreLocation -framework CoreGraphics -framework MobileCoreServices -framework SystemConfiguration -framework CFNetwork -framework Quickblox -framework UIKit -framework Foundation
我在我的应用程序中使用quickblox进行1对1聊天.用户已登录.但是当我尝试登录聊天时,我收到以下错误.
2014-03-31 12:42:09.532 MyChat[2175:3803] QBChat/didNotAuthenticate, error: <failure xmlns="urn:ietf:params:xml:ns:xmpp-sasl"><not-authorized/></failure>
2014-03-31 12:42:09.533 MyChat[2175:3803] -[QBContactList dealloc] ->
2014-03-31 12:42:09.533 MyChat[2175:3803] QBChat/didDisconnect, error: (null)
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么.
QBUUser *currentUser = [QBUUser user];
[QBChat instance].delegate = self;
[[QBChat instance] loginWithUser:currentUser];
Run Code Online (Sandbox Code Playgroud) 是否可以使用quickblox sdk而不是facebook-ios-sdk将facebook集成到我的应用程序中?
我们正在使用QuickBlox的iOS SDK进行聊天实施.
目前我们只有两个视图控制器1).登录和2).在UserList
成功登录app后,在此视图中移动到UserList视图,我们有Logout按钮.根据QuickBlox API,我们使用以下方法进行注销
[QBUsers logOutWithDelegate:self];
按钮单击及其委托方法:
- (void)completedWithResult:(Result *)result
{
if([result isKindOfClass:[QBUUserLogOutResult class]]) // QuickBlox User Logout result
{
// Success result
if(result.success)
{
[self.navigationController popToRootViewControllerAnimated:YES];
}
}
}
Run Code Online (Sandbox Code Playgroud)
成功注销后,应用程序返回登录界面.
问题:
当用户点击退出并且应用程序移动到登录屏幕时,如果用户输入相同的用户名和密码,则再次登录打印
Chat App[3183:5903] -[QBChat loginWithUser:] -> return. Already logged in
如何解决这个问题?或者实施登录/注销流程的最佳实践是什么?
我正在制作具有视频通话功能的应用程序,我已经使用QuickBlox SDK webrtc for Android和IOS.
它适用于android到android和IOS到IOS,
但我的问题是我无法接收或拨打从IOS应用到Android应用的视频通话,反之亦然.
有没有修复???
我想在聊天中创建注册.
在application.java onCreate中我使用:
QBSettings.getInstance().fastConfigInit(APP_ID, AUTH_KEY, AUTH_SECRET);
StickersManager.initialize(STICKER_API_KEY, this);
ChatService.initIfNeed(this);
Run Code Online (Sandbox Code Playgroud)
在我的活动中,我使用:
ChatService.initIfNeed(EditProfileActivity.this);
final QBUser chatUser = new QBUser("userlogin", "userpass");
QBUsers.signUp(chatUser, new QBEntityCallbackImpl<QBUser>() {
@Override
public void onSuccess(QBUser user, Bundle args) {
// success
Log.e("chat", "registered");
}
@Override
public void onError(List<String> errors) {
// error
Log.e("chat", "registration error");
}
});
Run Code Online (Sandbox Code Playgroud)
但在OnError中获取下一个错误:需要令牌
需要哪种令牌?如何从用户应用程序注册新用户?
[QBRequest signUp: user successBlock: ^ (QBResponse * response, QBUUser * user) {
// your file - this is an image in our case
NSData * imageData = UIImageJPEGRepresentation([UIImage imageNamed: @"Profile Picture"], 0.8 f);
[QBRequest TUploadFile: imageData fileName: @"ProfilePicture"
contentType: @"image/jpeg"
isPublic: YES successBlock: ^ (QBResponse * response, QBCBlob * blob) {
// File uploaded, do something
// if blob.isPublic == YES
NSString * url = [blob publicUrl];
}
statusBlock: ^ (QBRequest * request, QBRequestStatus * status) {
// handle progress …Run Code Online (Sandbox Code Playgroud) 我刚开始玩Quickblox.我创建了3个用户,无法从数据库中获取任何用户.任何想法,将不胜感激.(frameworkVersion 2.6.4)
[QBRequest logInWithUserLogin: self.loginTextField.text password:self.passwordTextField.text successBlock:^(QBResponse * _Nonnull response, QBUUser* _Nullable user) {
NSLog(@"+++LOGGED IN:%@", response);
//Getting all users
QBGeneralResponsePage *page = [QBGeneralResponsePage responsePageWithCurrentPage:1 perPage:100];
[QBRequest usersForPage:page successBlock:^(QBResponse *response, QBGeneralResponsePage *pageInformation, NSArray *users) {
NSLog(@"+++GOT %lu Users",(unsigned long)users.count);
} errorBlock:^(QBResponse *response) {
NSLog(@"---NO Users:%@",response.error);
}];
} errorBlock:^(QBResponse * _Nonnull response) {
NSLog(@"NOT --- LOGGED IN:%@", response.error);
}];
Run Code Online (Sandbox Code Playgroud)
控制台输出:
+++LOGGED IN:[QBResponse], status: 202
---NO Users:
Error reasons:{
errors = {
base = (
Forbidden
);
};
}
Run Code Online (Sandbox Code Playgroud) 在我的应用程序中,当我向其他用户发送附件(如图像和视频)时,这个错误随机出现,它崩溃了.
我正在使用Quickblox SDK.
这是错误..
NSRangeException',原因:'*** - [__ NSArrayM objectAtIndex:]:索引1超出边界[0 .. 0]
2016-04-26 10:22:50.510 Sample-VideoChat[1027:12093] *** Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[__NSArrayM objectAtIndex:]: index 1 beyond bounds [0 .. 0]'
enter code here
- (NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView
{
NSLog(@"self.chatSections....%@",self.chatSections);
return [self.chatSections count];
}
- (UICollectionViewCell *)collectionView:(QMChatCollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
QBChatMessage *messageItem = [self messageForIndexPath:indexPath];
NSRange textRange =[messageItem.text rangeOfString:@"https://api.quickblox.com/blobs/"];
Class class = [self viewClassForItem:messageItem];
NSString *itemIdentifier = [class cellReuseIdentifier];
QMChatCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:itemIdentifier forIndexPath:indexPath];
cell.avatarView.tag = …Run Code Online (Sandbox Code Playgroud) 我在用
com.quickblox:quickblox-android-sdk-videochat-webrtc:3.9.1用于聊天
和
org.jitsi.react:jitsi-meet-sdk:2.10.0 //用于会议
但无法解决这些问题
在模块 jetified-google-webrtc-1.0.25003-runtime (org.webrtc:google-webrtc:1.0.25003) 和 jetified-react-native-webrtc-1.84.0-jitsi-5385907 中发现重复的类 org.webrtc.AndroidVideoDecoder -runtime (com.facebook.react:react-native-webrtc:1.84.0-jitsi-5385907) 在模块 jetified-google-webrtc-1.0.25003-runtime (org.webrtc: google-webrtc:1.0.25003) 和 jetified-react-native-webrtc-1.84.0-jitsi-5385907-runtime (com.facebook.react:react-native-webrtc:1.84.0-jitsi-5385907) 重复的类组织.webrtc.AndroidVideoDecoder$DecodedTextureMetadata 在模块 jetified-google-webrtc-1.0.25003-runtime (org.webrtc:google-webrtc:1.0.25003) 和 jetified-react-native-webrtc-1.84.0-jitsi-5385907- 中找到运行时 (com.facebook.react:react-native-webrtc:1.84.0-jitsi-5385907) 在模块 jetified-google-webrtc-1.0.25003-runtime (org.webrtc: google-webrtc:1.0.25003) 和 jetified-react-native-webrtc-1.84.0-jitsi-5385907-runtime (com.facebook.react:react-native-webrtc:1.84.0-jitsi-5385907) 重复的类组织.webrtc.AudioProcessingFactory 在模块 jetified-google-webrtc-1.0.25003-runtime (org.webrtc:google-webrtc:1.0.25003) 和 jetified-react-native-webrtc-1.84.0-jitsi-5385907-runtime ( com.facebook.react:react-native-webrtc:1.84.0-jitsi-5385907) 在模块 jetified-google-webrtc-1.0.25003-runtime 中找到重复的类 org.webrtc.AudioSource (org.webrtc:google-webrtc: 1.0.25003) 和 jetified-react-native-webrtc-1.84.0-jitsi-5385907-runtime (com.facebook.react:react-native-webrtc:1.84.0-jitsi-5385907) 重复类 org.webrtc.AudioTrack在模块 jetified-google-webrtc-1.0.25003-runtime (org.webrtc:google-webrtc:1.0.25003) 和 jetified-react-native-webrtc-1.84.0-jitsi-5385907-runtime (com.facebook. react:react-native-webrtc:1.84.0-jitsi-5385907) 在模块 jetified-google-webrtc-1.0.25003-runtime (org.webrtc:google-webrtc:1.0.25003) 中找到重复的类 org.webrtc.BaseBitrateAdjuster和 jetified-react-native-webrtc-1.84.0-jitsi-5385907-runtime (com.facebook.react:react-native-webrtc:1.84.0-jitsi-5385907) 在 jetified 模块中发现重复的类 org.webrtc.BitrateAdjuster -google-webrtc-1.0.25003-runtime (org.webrtc:google-webrtc:1.0.25003) 和 jetified-react-native-webrtc-1.84.0-jitsi-5385907-runtime (com.facebook.react:react- native-webrtc:1.84.0-jitsi-5385907) …