Commit 3297fba3 by zhangyunjie

1201

parent d88e42c8
...@@ -364,10 +364,16 @@ ...@@ -364,10 +364,16 @@
inputPaths = ( inputPaths = (
"${PODS_ROOT}/Target Support Files/Pods-OffcnIMSDKiOS_Example/Pods-OffcnIMSDKiOS_Example-resources.sh", "${PODS_ROOT}/Target Support Files/Pods-OffcnIMSDKiOS_Example/Pods-OffcnIMSDKiOS_Example-resources.sh",
"${PODS_ROOT}/../../OffcnIMSDKiOS/Resources/OffcnIMSDKiOSIcon.bundle", "${PODS_ROOT}/../../OffcnIMSDKiOS/Resources/OffcnIMSDKiOSIcon.bundle",
"${PODS_ROOT}/../../OffcnIMSDKiOS/Resources/ZYJExpressionKeyboard.bundle",
"${PODS_ROOT}/../../OffcnIMSDKiOS/Resources/ZYJTZImagePickerController.bundle",
"${PODS_ROOT}/../../OffcnIMSDKiOS/Resources/ZYYJMJRefresh.bundle",
); );
name = "[CP] Copy Pods Resources"; name = "[CP] Copy Pods Resources";
outputPaths = ( outputPaths = (
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/OffcnIMSDKiOSIcon.bundle", "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/OffcnIMSDKiOSIcon.bundle",
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/ZYJExpressionKeyboard.bundle",
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/ZYJTZImagePickerController.bundle",
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/ZYYJMJRefresh.bundle",
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh; shellPath = /bin/sh;
...@@ -381,13 +387,27 @@ ...@@ -381,13 +387,27 @@
); );
inputPaths = ( inputPaths = (
"${PODS_ROOT}/Target Support Files/Pods-OffcnIMSDKiOS_Example/Pods-OffcnIMSDKiOS_Example-frameworks.sh", "${PODS_ROOT}/Target Support Files/Pods-OffcnIMSDKiOS_Example/Pods-OffcnIMSDKiOS_Example-frameworks.sh",
"${BUILT_PRODUCTS_DIR}/IQKeyboardManager/IQKeyboardManager.framework",
"${BUILT_PRODUCTS_DIR}/LMJDropdownMenu/LMJDropdownMenu.framework", "${BUILT_PRODUCTS_DIR}/LMJDropdownMenu/LMJDropdownMenu.framework",
"${PODS_ROOT}/../../OffcnIMSDKiOS/Frameworks/oimcore.framework", "${PODS_ROOT}/../../OffcnIMSDKiOS/Frameworks/oimcore.framework",
"${BUILT_PRODUCTS_DIR}/YYCache/YYCache.framework",
"${BUILT_PRODUCTS_DIR}/YYCategories/YYCategories.framework",
"${BUILT_PRODUCTS_DIR}/YYImage/YYImage.framework",
"${BUILT_PRODUCTS_DIR}/YYModel/YYModel.framework",
"${BUILT_PRODUCTS_DIR}/YYText/YYText.framework",
"${BUILT_PRODUCTS_DIR}/YYWebImage/YYWebImage.framework",
); );
name = "[CP] Embed Pods Frameworks"; name = "[CP] Embed Pods Frameworks";
outputPaths = ( outputPaths = (
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/IQKeyboardManager.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/LMJDropdownMenu.framework", "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/LMJDropdownMenu.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/oimcore.framework", "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/oimcore.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/YYCache.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/YYCategories.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/YYImage.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/YYModel.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/YYText.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/YYWebImage.framework",
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh; shellPath = /bin/sh;
...@@ -542,9 +562,9 @@ ...@@ -542,9 +562,9 @@
INFOPLIST_FILE = "OffcnIMSDKiOS/OffcnIMSDKiOS-Info.plist"; INFOPLIST_FILE = "OffcnIMSDKiOS/OffcnIMSDKiOS-Info.plist";
IPHONEOS_DEPLOYMENT_TARGET = 9.0; IPHONEOS_DEPLOYMENT_TARGET = 9.0;
MODULE_NAME = ExampleApp; MODULE_NAME = ExampleApp;
PRODUCT_BUNDLE_IDENTIFIER = com.eoffcn.classonline; PRODUCT_BUNDLE_IDENTIFIER = com.eoffcn.questions;
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = ClassonlineDev; PROVISIONING_PROFILE_SPECIFIER = WXQuestionDev;
SWIFT_VERSION = 4.0; SWIFT_VERSION = 4.0;
WRAPPER_EXTENSION = app; WRAPPER_EXTENSION = app;
}; };
...@@ -564,9 +584,9 @@ ...@@ -564,9 +584,9 @@
INFOPLIST_FILE = "OffcnIMSDKiOS/OffcnIMSDKiOS-Info.plist"; INFOPLIST_FILE = "OffcnIMSDKiOS/OffcnIMSDKiOS-Info.plist";
IPHONEOS_DEPLOYMENT_TARGET = 9.0; IPHONEOS_DEPLOYMENT_TARGET = 9.0;
MODULE_NAME = ExampleApp; MODULE_NAME = ExampleApp;
PRODUCT_BUNDLE_IDENTIFIER = com.eoffcn.classonline; PRODUCT_BUNDLE_IDENTIFIER = com.eoffcn.questions;
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = ClassonlineDev; PROVISIONING_PROFILE_SPECIFIER = WXQuestionDev;
SWIFT_VERSION = 4.0; SWIFT_VERSION = 4.0;
WRAPPER_EXTENSION = app; WRAPPER_EXTENSION = app;
}; };
......
...@@ -158,6 +158,8 @@ ...@@ -158,6 +158,8 @@
} ProgressPercent:^(NSString *extIndex, NSString *filePath, float percent) { } ProgressPercent:^(NSString *extIndex, NSString *filePath, float percent) {
NSLog(@"extIndex == %@,filePath == %@,percent == %.2f", extIndex,filePath,percent); NSLog(@"extIndex == %@,filePath == %@,percent == %.2f", extIndex,filePath,percent);
} tidStrFinished:^(NSString *extIndex, NSString *tidString) {
}]; }];
} }
#pragma mark - 切换环境 #pragma mark - 切换环境
...@@ -288,6 +290,8 @@ ...@@ -288,6 +290,8 @@
} ProgressPercent:^(NSString *extIndex, NSString *filePath, float percent) { } ProgressPercent:^(NSString *extIndex, NSString *filePath, float percent) {
NSLog(@"extIndex == %@,filePath == %@,percent == %.2f", extIndex,filePath,percent); NSLog(@"extIndex == %@,filePath == %@,percent == %.2f", extIndex,filePath,percent);
} tidStrFinished:^(NSString *extIndex, NSString *tidString) {
}]; }];
} }
- (IBAction)noReadListAction:(UIButton *)sender { - (IBAction)noReadListAction:(UIButton *)sender {
...@@ -494,6 +498,8 @@ ...@@ -494,6 +498,8 @@
} ProgressPercent:^(NSString *extIndex, NSString *filePath, float percent) { } ProgressPercent:^(NSString *extIndex, NSString *filePath, float percent) {
NSLog(@"extIndex == %@,filePath == %@,percent == %.2f", extIndex,filePath,percent); NSLog(@"extIndex == %@,filePath == %@,percent == %.2f", extIndex,filePath,percent);
} tidStrFinished:^(NSString *extIndex, NSString *tidString) {
}]; }];
} }
- (IBAction)uploadFile:(UIButton *)sender { - (IBAction)uploadFile:(UIButton *)sender {
...@@ -510,6 +516,8 @@ ...@@ -510,6 +516,8 @@
} ProgressPercent:^(NSString *extIndex, NSString *filePath, float percent) { } ProgressPercent:^(NSString *extIndex, NSString *filePath, float percent) {
NSLog(@"extIndex == %@,filePath == %@,percent == %.2f", extIndex,filePath,percent); NSLog(@"extIndex == %@,filePath == %@,percent == %.2f", extIndex,filePath,percent);
} tidStrFinished:^(NSString *extIndex, NSString *tidString) {
}]; }];
} }
- (IBAction)pressureTest:(UIButton *)sender { - (IBAction)pressureTest:(UIButton *)sender {
......
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
Pod::Spec.new do |s| Pod::Spec.new do |s|
s.name = 'OffcnIMSDKiOS' s.name = 'OffcnIMSDKiOS'
s.version = '1.0.0.23.12' s.version = '1.2.0.1'
s.summary = 'OffcnIMSDKiOS.' s.summary = 'OffcnIMSDKiOS.'
s.description = <<-DESC s.description = <<-DESC
...@@ -42,13 +42,13 @@ TODO: Add long description of the pod here. ...@@ -42,13 +42,13 @@ TODO: Add long description of the pod here.
s.user_target_xcconfig = {'OTHER_LDFLAGS' => '-ObjC'} s.user_target_xcconfig = {'OTHER_LDFLAGS' => '-ObjC'}
#dependency : 该pod依赖的 #dependency : 该pod依赖的
# s.dependency 'IQKeyboardManager', '5.0.8' s.dependency 'IQKeyboardManager', '5.0.8'
#
# s.dependency 'YYModel', '~> 1.0.4' s.dependency 'YYModel', '~> 1.0.4'
# s.dependency 'YYCache', '~> 1.0.4' s.dependency 'YYCache', '~> 1.0.4'
# s.dependency 'YYCategories', '~> 1.0.4' s.dependency 'YYCategories', '~> 1.0.4'
# s.dependency 'YYImage', '~> 1.0.4' s.dependency 'YYImage', '~> 1.0.4'
# s.dependency 'YYWebImage', '~> 1.0.5' s.dependency 'YYWebImage', '~> 1.0.5'
# s.dependency 'YYText', '~> 1.0.7' s.dependency 'YYText', '~> 1.0.7'
end end
//
// OffcnIMChatInfoViewController.h
// classonline
//
// Created by HX on 2020/10/14.
// Copyright © 2020 offcn. All rights reserved.
//
#import <UIKit/UIKit.h>
#import "OffcnIMModel.h"
NS_ASSUME_NONNULL_BEGIN
//自己发送消息通知
#define kSendMsgNotification @"kSendMsgNotification"
#define kResultKey @"kResultKey"
#define kObjcKey @"kObjcKey"
//页面显示消失
#define kPageShowNotification @"kPageShowNotification"
@class OffcnIMContactInfoModel;
@interface OffcnIMChatInfoViewController : UIViewController
//联系人model
@property (nonatomic, strong) OffcnIMUserList_listModel *contactInfoModel;
//滑动到底部
- (void)scrollTableToFoot:(BOOL)animated;
@end
NS_ASSUME_NONNULL_END
//
// OffcnIMChatListViewController.h
// classonline
//
// Created by HX on 2020/10/14.
// Copyright © 2020 offcn. All rights reserved.
//
#import <UIKit/UIKit.h>
#import "OffcnIMModel.h"
NS_ASSUME_NONNULL_BEGIN
//消息总数回调
typedef void(^OffcnIMTotal_unread_number)(NSInteger num);
@interface OffcnIMChatListViewController : UIViewController
@property (nonatomic, assign) BOOL isNavBarHidden;//是否隐藏导航
/// 自定义UI
/// @param viewTopHeight (view top的高度,一级子视图传0,二级子视图传0.1或自定义高度)
/// @param viewBottomHeight (view bottom的高度)
/// @param isNeedSearch 是否需要搜索功能
-(void)setUIWithViewTopHeight:(CGFloat)viewTopHeight ViewBottomHeight:(CGFloat)viewBottomHeight isNeedSearch:(BOOL)isNeedSearch;
@property (nonatomic, assign) BOOL isShowNoWifiTip;//显示没网提示
@property (nonatomic, copy) OffcnIMTotal_unread_number total_unread_number;//消息总数回调
//返回联系人信息
-(OffcnIMUserList_listModel *)getContactInfoModelWithUserID:(NSString *)userID;
//清空数据
-(void)clearData;
//刷新
-(void)reloadData;
@end
NS_ASSUME_NONNULL_END
...@@ -18,7 +18,7 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -18,7 +18,7 @@ NS_ASSUME_NONNULL_BEGIN
@property (nonatomic,strong)OffcnIMBodyModel *body; @property (nonatomic,strong)OffcnIMBodyModel *body;
@end @end
@class OffcnIMMsgModel; @class OffcnIMMsgModel,OffcnIMPrivateChatListModel;
@interface OffcnIMBodyModel : NSObject @interface OffcnIMBodyModel : NSObject
@property (nonatomic,assign)BOOL is_top;//是否置顶 @property (nonatomic,assign)BOOL is_top;//是否置顶
...@@ -27,7 +27,7 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -27,7 +27,7 @@ NS_ASSUME_NONNULL_BEGIN
@property (nonatomic,copy)NSString *version; @property (nonatomic,copy)NSString *version;
@property (nonatomic,copy)NSString *send_time;//发送时间 @property (nonatomic,copy)NSString *send_time;//发送时间
@property (nonatomic,assign)NSInteger msg_seq;//消息时序 @property (nonatomic,assign)NSInteger msg_seq;//消息时序
@property (nonatomic,assign)NSInteger msg_scope;// 区分单聊:1以及群聊:2 @property (nonatomic,assign)NSInteger msg_scope;// 区分单聊:1以及群聊:2;私聊9
@property (nonatomic,copy)NSString *msg_from;//发送消息的用户id @property (nonatomic,copy)NSString *msg_from;//发送消息的用户id
@property (nonatomic,copy)NSString *msg_to;//接受消息的用户id @property (nonatomic,copy)NSString *msg_to;//接受消息的用户id
@property (nonatomic,copy)NSString *to;//对方Id @property (nonatomic,copy)NSString *to;//对方Id
...@@ -36,9 +36,12 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -36,9 +36,12 @@ NS_ASSUME_NONNULL_BEGIN
@property (nonatomic,assign)BOOL isJoinSession;// @property (nonatomic,assign)BOOL isJoinSession;//
@property (nonatomic,copy)NSString *ext;//im开发者扩展字段,私聊内容
@property (nonatomic,strong)OffcnIMPrivateChatListModel *privateModel;//私聊内容
@property (nonatomic,copy)NSString *extIndex;//开发者扩展字段 @property (nonatomic,copy)NSString *extIndex;//开发者扩展字段
@property (nonatomic,copy)NSString *ext;//开发者扩展字段
@property (nonatomic,assign)CGFloat cellH;//扩展字段 @property (nonatomic,assign)CGFloat cellH;//扩展字段
@property (nonatomic,copy)NSString *ext_custom;//开发者扩展字段
//以下数据库使用 //以下数据库使用
@property (nonatomic,assign)NSInteger isSentSuccess;//是否发送成功 @property (nonatomic,assign)NSInteger isSentSuccess;//是否发送成功
...@@ -158,5 +161,84 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -158,5 +161,84 @@ NS_ASSUME_NONNULL_BEGIN
@end @end
@class OffcnIMUserList_list_classesModel;
@interface OffcnIMUserList_listModel : NSObject
@property (nonatomic, assign) NSInteger cell_type;//1:群发消息,2:单发消息
@property (nonatomic, copy) NSString *key;//群ID
@property (nonatomic, strong) OffcnIMUserList_list_classesModel *classes;//群成员
@property (nonatomic, copy) NSString *room_name;//房间标题
@property (nonatomic, copy) NSString *room_time;//直播时间例如:@"12:00-15:00"
@property (nonatomic, copy) NSString *room_class;//所属班级
@property (nonatomic, copy) NSString *room_num;//房间号
@property (nonatomic, copy) NSString *avatar;//头像地址
@property (nonatomic, copy) NSString *sortChar;//无地址时头像展示一个字(暂无此功能)
@property (nonatomic, copy) NSString *avatar_color;//无地址时头像背景色(暂无此功能)
@property (nonatomic, copy) NSString *name;//名字
@property (nonatomic, copy) NSString *remark;//备注名
@property (nonatomic, copy) NSString *phone;//用户手机号
@property (nonatomic, copy) NSString *name_original;//原始名字
@property (nonatomic, copy) NSString *user_id;//用户ID
@property (nonatomic, copy) NSString *expand;//拓展字段
@property (nonatomic, assign) NSInteger expandH;//拓展字段
@end
@interface OffcnIMUserList_list_classesModel : NSObject
@property (nonatomic, copy) NSString *count;//成员人数
@property (nonatomic, strong) NSMutableArray *name;//成员名字
@end
//私聊
@interface OffcnIMPrivateChatListModel : NSObject
@property (nonatomic,assign)BOOL is_top;//是否置顶
@property (nonatomic,assign)CGFloat cellH;//扩展字段
@property (nonatomic,copy)NSString *ID;
@property (nonatomic,copy)NSString *create_time;
@property (nonatomic,copy)NSString *msg_to;
@property (nonatomic,copy)NSString *msg_to_name;
@property (nonatomic,copy)NSString *msg_to_role;
@property (nonatomic,copy)NSString *msg_from;
@property (nonatomic,copy)NSString *msg_from_name;
@property (nonatomic,copy)NSString *msg_from_role;
@property (nonatomic,assign)NSInteger num;// 未读消息数
@property (nonatomic,assign)NSInteger online;// 是否在线 0:不在线 1:在线
@property (nonatomic,copy)NSString *room_num;
@property (nonatomic,copy)NSString *send_time;
@property (nonatomic,copy)NSString *msg_unique;
@property (nonatomic,strong)NSMutableArray *content;//消息内容
@property (nonatomic,copy)NSMutableAttributedString *attributedS;//文本消息内容
@property (nonatomic,assign)BOOL isPrivating;//在私聊界面
@property (nonatomic,assign)BOOL isHasPrivated;//以前私聊过
@end
@interface OffcnIMPrivateChatContentModel : NSObject
@property (nonatomic,copy)NSString *type;//text/face/image
@property (nonatomic,copy)NSString *data;
@property (nonatomic,copy)NSString *msg;//消息ID
@property (nonatomic,copy)NSString *uuid;//被@人的id
@property (nonatomic,copy)NSString *nickname;//被@人的name
@property (nonatomic,assign)BOOL isDeletBtn;
@end
NS_ASSUME_NONNULL_END NS_ASSUME_NONNULL_END
//
// OffcnIMPrivateChatInfoViewController.h
// OffcnIMSDKiOSDemo
//
// Created by vockey on 2021/4/8.
// Copyright © 2021 offcn. All rights reserved.
//
#import <UIKit/UIKit.h>
#import "OffcnIMModel.h"
NS_ASSUME_NONNULL_BEGIN
//自己发送消息通知
#define kSendPrivateMsgNotification @"kSendPrivateMsgNotification"
#define kResultKey @"kResultKey"
#define kObjcKey @"kObjcKey"
//页面显示消失
#define kPrivatePageShowNotification @"kPrivatePageShowNotification"
@class OffcnIMContactInfoModel;
@interface OffcnIMPrivateChatInfoViewController : UIViewController
//联系人model
@property (nonatomic, strong) OffcnIMUserList_listModel *contactInfoModel;
//滑动到底部
- (void)scrollTableToFoot:(BOOL)animated;
@end
NS_ASSUME_NONNULL_END
//
// OffcnIMPrivateChatListViewController.h
// OffcnIMSDKiOSDemo
//
// Created by vockey on 2021/4/8.
// Copyright © 2021 offcn. All rights reserved.
//
#import <UIKit/UIKit.h>
#import "OffcnIMModel.h"
NS_ASSUME_NONNULL_BEGIN
//消息总数回调
typedef void(^OffcnIMPrivateChatTotal_unread_number)(NSInteger num);
@interface OffcnIMPrivateChatListViewController : UIViewController
@property (nonatomic, copy) OffcnIMPrivateChatTotal_unread_number privateChatTotal_unread_number;//消息总数回调
//返回联系人信息
-(OffcnIMUserList_listModel *)getPrivateChatContactInfoModelWithUserID:(NSString *)userID room_num:(NSString *)room_num;
//清空数据
-(void)clearData;
//刷新
-(void)reloadData;
@end
NS_ASSUME_NONNULL_END
File mode changed from 100644 to 100755
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
#import <UIKit/UIKit.h> #import <UIKit/UIKit.h>
#import "OffcnIMModel.h" #import "OffcnIMModel.h"
static const NSString *OffcnIMSDKiOSVersion = @"1.0.0.23.12"; static const NSString *OffcnIMSDKiOSVersion = @"1.2.0.1";
typedef NS_ENUM(NSUInteger, OffcnIMSDKReachabilityStatus) { typedef NS_ENUM(NSUInteger, OffcnIMSDKReachabilityStatus) {
OffcnIMSDKReachabilityStatusNotReachable = 0, OffcnIMSDKReachabilityStatusNotReachable = 0,
...@@ -65,6 +65,7 @@ typedef void(^OffcnIMSDKReachabilityStatusCallBack)(OffcnIMSDKReachabilityStatus ...@@ -65,6 +65,7 @@ typedef void(^OffcnIMSDKReachabilityStatusCallBack)(OffcnIMSDKReachabilityStatus
/// @param finished 结果回调 /// @param finished 结果回调
-(void)getUserAllUnreadNumberWithAccid:(NSString *)accid Finished:(void(^)(BOOL success,NSInteger total_unread_number,NSString *errorMessage))finished; -(void)getUserAllUnreadNumberWithAccid:(NSString *)accid Finished:(void(^)(BOOL success,NSInteger total_unread_number,NSString *errorMessage))finished;
/// 发送消息 /// 发送消息
/// @param msg_fromID 发送人ID /// @param msg_fromID 发送人ID
/// @param msg_toID 接收人ID /// @param msg_toID 接收人ID
...@@ -75,7 +76,9 @@ typedef void(^OffcnIMSDKReachabilityStatusCallBack)(OffcnIMSDKReachabilityStatus ...@@ -75,7 +76,9 @@ typedef void(^OffcnIMSDKReachabilityStatusCallBack)(OffcnIMSDKReachabilityStatus
/// @param extIndex 开发者扩展字段 /// @param extIndex 开发者扩展字段
/// @param repeatSend_tid 重新发送的tid /// @param repeatSend_tid 重新发送的tid
/// @param finished 结果回调,最大限制为500字,超过500字报错回调信息:超过500字 /// @param finished 结果回调,最大限制为500字,超过500字报错回调信息:超过500字
-(void)sendMsgWithMsg_fromID:(NSString *)msg_fromID msg_toID:(NSString *)msg_toID msg_type:(OffcnSDKMsgType)msg_type text:(NSString *)text filePath:(NSString *)filePath ext:(NSString *)ext extIndex:(NSString *)extIndex repeatSend_tid:(NSString *)repeatSend_tid Finished:(void(^)(NSString *extIndex,BOOL success,OffcnIMBodyModel *sendMsgModel,NSString *errorMessage))finished ProgressPercent:(void(^)(NSString *extIndex, NSString *filePath, float percent))progressPercent; /// @param progressPercent 进度回调
/// @param tidStrFinished 发送消息本地tid回调
-(void)sendMsgWithMsg_fromID:(NSString *)msg_fromID msg_toID:(NSString *)msg_toID msg_type:(OffcnSDKMsgType)msg_type text:(NSString *)text filePath:(NSString *)filePath ext:(NSString *)ext extIndex:(NSString *)extIndex repeatSend_tid:(NSString *)repeatSend_tid Finished:(void(^)(NSString *extIndex,BOOL success,OffcnIMBodyModel *sendMsgModel,NSString *errorMessage))finished ProgressPercent:(void(^)(NSString *extIndex, NSString *filePath, float percent))progressPercent tidStrFinished:(void(^)(NSString *extIndex,NSString *tidString))tidStrFinished;
/// 用户信息标记已读 /// 用户信息标记已读
/// @param msg_fromID 发送人ID /// @param msg_fromID 发送人ID
...@@ -136,4 +139,45 @@ typedef void(^OffcnIMSDKReachabilityStatusCallBack)(OffcnIMSDKReachabilityStatus ...@@ -136,4 +139,45 @@ typedef void(^OffcnIMSDKReachabilityStatusCallBack)(OffcnIMSDKReachabilityStatus
/// 退出账号 /// 退出账号
-(void)logout; -(void)logout;
/// 获取私聊会话列表
/// @param finished 结果回调
-(void)get_privateMessage_listFinished:(void(^)(BOOL success,id response,NSString *errorMessage))finished;
/// 获取私聊会话历史
/// @param msg_to 对方ID
/// @param lastId 最后一条消息ID
/// @param room_num 房间号
/// @param finished 结果回调
-(void)get_privateMessage_historyWithMsg_to:(NSString *)msg_to lastId:(NSString *)lastId room_num:(NSString *)room_num Finished:(void(^)(BOOL success,id response,NSString *errorMessage))finished;
/// 更新私聊会话状态
/// @param msg_to 对方ID
/// @param last_id 最后一条消息ID
/// @param room_num 房间号
/// @param finished 结果回调
-(void)post_privateMessage_statusWithMsg_to:(NSString *)msg_to last_id:(NSString *)last_id room_num:(NSString *)room_num Finished:(void(^)(BOOL success,id response,NSString *errorMessage))finished;
/// 私聊发送消息
/// @param msg_to 对方ID
/// @param content 内容
/// @param room_num 房间号
/// @param finished 结果回调
-(void)post_privateMessageWithMsg_to:(NSString *)msg_to content:(NSMutableArray *)content room_num:(NSString *)room_num Finished:(void(^)(BOOL success,id response,NSString *errorMessage))finished;
/// 发送私聊消息
/// @param msg_to 接收人ID
/// @param room_num 房间号
/// @param msg_type 发送消息类型
/// @param text 文本
/// @param filePath 图片/音频(语音消息格式,只能是aac格式)/视频/文件,沙盒路径
/// @param ext 开发者扩展字段
/// @param extIndex 开发者扩展字段
/// @param repeatSend_tid 重新发送的tid
/// @param finished 结果回调,最大限制为500字,超过500字报错回调信息:超过500字
/// @param progressPercent 进度回调
/// @param tidStrFinished 发送消息本地tid回调
-(void)sendPrivateMsgWithMsg_to:(NSString *)msg_to room_num:(NSString *)room_num msg_type:(OffcnSDKMsgType)msg_type text:(NSMutableAttributedString *)text filePath:(NSString *)filePath ext:(NSString *)ext extIndex:(NSString *)extIndex repeatSend_tid:(NSString *)repeatSend_tid Finished:(void(^)(NSString *extIndex,BOOL success, id response, NSMutableArray *content, NSString *errorMessage))finished ProgressPercent:(void(^)(NSString *extIndex, NSString *filePath, float percent))progressPercent tidStrFinished:(void(^)(NSString *extIndex,NSString *tidString))tidStrFinished;
@end @end
...@@ -11,6 +11,14 @@ ...@@ -11,6 +11,14 @@
NS_ASSUME_NONNULL_BEGIN NS_ASSUME_NONNULL_BEGIN
//收到消息通知
#define kRevMsgNotification @"kRevMsgNotification"
//收到消息状态通知
#define kRevMsgStateNotification @"kRevMsgStateNotification"
//收到私聊消息通知
#define kRevPrivateMsgNotification @"kRevPrivateMsgNotification"
typedef NS_ENUM(NSUInteger, OffcnIMConnectStatus) { typedef NS_ENUM(NSUInteger, OffcnIMConnectStatus) {
OffcnIMConnectStatusMissingParameter = 201019, //缺少参数 OffcnIMConnectStatusMissingParameter = 201019, //缺少参数
OffcnIMConnectStatusInitializing = 201029, //连接初始化中 OffcnIMConnectStatusInitializing = 201029, //连接初始化中
...@@ -51,6 +59,7 @@ typedef void(^OffcnIMReceiveConnectStatus)(OffcnIMConnectStatus status,NSString ...@@ -51,6 +59,7 @@ typedef void(^OffcnIMReceiveConnectStatus)(OffcnIMConnectStatus status,NSString
@property (nonatomic, weak) id<OffcnIMSocketDelegate> delegate; @property (nonatomic, weak) id<OffcnIMSocketDelegate> delegate;
@property (nonatomic, copy) NSString *avatar;//发送消息的用户头像
@property (nonatomic, copy) NSString *msg_fromId;//发送消息的用户id @property (nonatomic, copy) NSString *msg_fromId;//发送消息的用户id
@property (nonatomic, copy) NSString *token;//发送消息的用户token @property (nonatomic, copy) NSString *token;//发送消息的用户token
......
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>id</key>
<string>com.OffcnIM.emoji</string>
<key>version</key>
<real>2</real>
<key>group_name_tw</key>
<string>默認</string>
<key>group_name_cn</key>
<string>默认</string>
<key>group_name_en</key>
<string>Default</string>
<key>display_only</key>
<integer>0</integer>
<key>group_type</key>
<integer>0</integer>
<key>emoticons</key>
<array>
<dict>
<key>chs</key>
<string></string>
<key>cht</key>
<string></string>
<key>gif</key>
<string></string>
<key>png</key>
<string>face_0.png</string>
<key>type</key>
<string>0</string>
</dict>
<dict>
<key>chs</key>
<string></string>
<key>cht</key>
<string></string>
<key>gif</key>
<string></string>
<key>png</key>
<string>face_1.png</string>
<key>type</key>
<string>0</string>
</dict>
<dict>
<key>chs</key>
<string></string>
<key>cht</key>
<string></string>
<key>gif</key>
<string></string>
<key>png</key>
<string>face_2.png</string>
<key>type</key>
<string>0</string>
</dict>
<dict>
<key>chs</key>
<string></string>
<key>cht</key>
<string></string>
<key>gif</key>
<string></string>
<key>png</key>
<string>face_3.png</string>
<key>type</key>
<string>0</string>
</dict>
<dict>
<key>chs</key>
<string></string>
<key>cht</key>
<string></string>
<key>gif</key>
<string></string>
<key>png</key>
<string>face_4.png</string>
<key>type</key>
<string>0</string>
</dict>
<dict>
<key>chs</key>
<string></string>
<key>cht</key>
<string></string>
<key>gif</key>
<string></string>
<key>png</key>
<string>face_5.png</string>
<key>type</key>
<string>0</string>
</dict>
<dict>
<key>chs</key>
<string></string>
<key>cht</key>
<string></string>
<key>gif</key>
<string></string>
<key>png</key>
<string>face_6.png</string>
<key>type</key>
<string>0</string>
</dict>
<dict>
<key>chs</key>
<string></string>
<key>cht</key>
<string></string>
<key>gif</key>
<string></string>
<key>png</key>
<string>face_7.png</string>
<key>type</key>
<string>0</string>
</dict>
<dict>
<key>chs</key>
<string></string>
<key>cht</key>
<string></string>
<key>gif</key>
<string></string>
<key>png</key>
<string>face_8.png</string>
<key>type</key>
<string>0</string>
</dict>
<dict>
<key>chs</key>
<string></string>
<key>cht</key>
<string></string>
<key>gif</key>
<string></string>
<key>png</key>
<string>face_9.png</string>
<key>type</key>
<string>0</string>
</dict>
<dict>
<key>chs</key>
<string></string>
<key>cht</key>
<string></string>
<key>gif</key>
<string></string>
<key>png</key>
<string>face_10.png</string>
<key>type</key>
<string>0</string>
</dict>
<dict>
<key>chs</key>
<string></string>
<key>cht</key>
<string></string>
<key>gif</key>
<string></string>
<key>png</key>
<string>face_11.png</string>
<key>type</key>
<string>0</string>
</dict>
<dict>
<key>chs</key>
<string></string>
<key>cht</key>
<string></string>
<key>gif</key>
<string></string>
<key>png</key>
<string>face_12.png</string>
<key>type</key>
<string>0</string>
</dict>
<dict>
<key>chs</key>
<string></string>
<key>cht</key>
<string></string>
<key>gif</key>
<string></string>
<key>png</key>
<string>face_13.png</string>
<key>type</key>
<string>0</string>
</dict>
<dict>
<key>chs</key>
<string></string>
<key>cht</key>
<string></string>
<key>gif</key>
<string></string>
<key>png</key>
<string>face_14.png</string>
<key>type</key>
<string>0</string>
</dict>
<dict>
<key>chs</key>
<string></string>
<key>cht</key>
<string></string>
<key>gif</key>
<string></string>
<key>png</key>
<string>face_15.png</string>
<key>type</key>
<string>0</string>
</dict>
<dict>
<key>chs</key>
<string></string>
<key>cht</key>
<string></string>
<key>gif</key>
<string></string>
<key>png</key>
<string>face_16.png</string>
<key>type</key>
<string>0</string>
</dict>
<dict>
<key>chs</key>
<string></string>
<key>cht</key>
<string></string>
<key>gif</key>
<string></string>
<key>png</key>
<string>face_17.png</string>
<key>type</key>
<string>0</string>
</dict>
<dict>
<key>chs</key>
<string></string>
<key>cht</key>
<string></string>
<key>gif</key>
<string></string>
<key>png</key>
<string>face_18.png</string>
<key>type</key>
<string>0</string>
</dict>
<dict>
<key>chs</key>
<string></string>
<key>cht</key>
<string></string>
<key>gif</key>
<string></string>
<key>png</key>
<string>face_19.png</string>
<key>type</key>
<string>0</string>
</dict>
<dict>
<key>chs</key>
<string></string>
<key>cht</key>
<string></string>
<key>gif</key>
<string></string>
<key>png</key>
<string>face_20.png</string>
<key>type</key>
<string>0</string>
</dict>
<dict>
<key>chs</key>
<string></string>
<key>cht</key>
<string></string>
<key>gif</key>
<string></string>
<key>png</key>
<string>face_21.png</string>
<key>type</key>
<string>0</string>
</dict>
<dict>
<key>chs</key>
<string></string>
<key>cht</key>
<string></string>
<key>gif</key>
<string></string>
<key>png</key>
<string>face_22.png</string>
<key>type</key>
<string>0</string>
</dict>
<dict>
<key>chs</key>
<string></string>
<key>cht</key>
<string></string>
<key>gif</key>
<string></string>
<key>png</key>
<string>face_23.png</string>
<key>type</key>
<string>0</string>
</dict>
<dict>
<key>chs</key>
<string></string>
<key>cht</key>
<string></string>
<key>gif</key>
<string></string>
<key>png</key>
<string>face_24.png</string>
<key>type</key>
<string>0</string>
</dict>
<dict>
<key>chs</key>
<string></string>
<key>cht</key>
<string></string>
<key>gif</key>
<string></string>
<key>png</key>
<string>face_25.png</string>
<key>type</key>
<string>0</string>
</dict>
<dict>
<key>chs</key>
<string></string>
<key>cht</key>
<string></string>
<key>gif</key>
<string></string>
<key>png</key>
<string>face_26.png</string>
<key>type</key>
<string>0</string>
</dict>
<dict>
<key>chs</key>
<string></string>
<key>cht</key>
<string></string>
<key>gif</key>
<string></string>
<key>png</key>
<string>face_27.png</string>
<key>type</key>
<string>0</string>
</dict>
<dict>
<key>chs</key>
<string></string>
<key>cht</key>
<string></string>
<key>gif</key>
<string></string>
<key>png</key>
<string>face_28.png</string>
<key>type</key>
<string>0</string>
</dict>
<dict>
<key>chs</key>
<string></string>
<key>cht</key>
<string></string>
<key>gif</key>
<string></string>
<key>png</key>
<string>face_29.png</string>
<key>type</key>
<string>0</string>
</dict>
<dict>
<key>chs</key>
<string></string>
<key>cht</key>
<string></string>
<key>gif</key>
<string></string>
<key>png</key>
<string>face_30.png</string>
<key>type</key>
<string>0</string>
</dict>
<dict>
<key>chs</key>
<string></string>
<key>cht</key>
<string></string>
<key>gif</key>
<string></string>
<key>png</key>
<string>face_31.png</string>
<key>type</key>
<string>0</string>
</dict>
<dict>
<key>chs</key>
<string></string>
<key>cht</key>
<string></string>
<key>gif</key>
<string></string>
<key>png</key>
<string>face_32.png</string>
<key>type</key>
<string>0</string>
</dict>
<dict>
<key>chs</key>
<string></string>
<key>cht</key>
<string></string>
<key>gif</key>
<string></string>
<key>png</key>
<string>face_33.png</string>
<key>type</key>
<string>0</string>
</dict>
<dict>
<key>chs</key>
<string></string>
<key>cht</key>
<string></string>
<key>gif</key>
<string></string>
<key>png</key>
<string>face_34.png</string>
<key>type</key>
<string>0</string>
</dict>
<dict>
<key>chs</key>
<string></string>
<key>cht</key>
<string></string>
<key>gif</key>
<string></string>
<key>png</key>
<string>face_35.png</string>
<key>type</key>
<string>0</string>
</dict>
<dict>
<key>chs</key>
<string></string>
<key>cht</key>
<string></string>
<key>gif</key>
<string></string>
<key>png</key>
<string>face_36.png</string>
<key>type</key>
<string>0</string>
</dict>
<dict>
<key>chs</key>
<string></string>
<key>cht</key>
<string></string>
<key>gif</key>
<string></string>
<key>png</key>
<string>face_37.png</string>
<key>type</key>
<string>0</string>
</dict>
<dict>
<key>chs</key>
<string></string>
<key>cht</key>
<string></string>
<key>gif</key>
<string></string>
<key>png</key>
<string>face_38.png</string>
<key>type</key>
<string>0</string>
</dict>
<dict>
<key>chs</key>
<string></string>
<key>cht</key>
<string></string>
<key>gif</key>
<string></string>
<key>png</key>
<string>face_39.png</string>
<key>type</key>
<string>0</string>
</dict>
<dict>
<key>chs</key>
<string></string>
<key>cht</key>
<string></string>
<key>gif</key>
<string></string>
<key>png</key>
<string>face_40.png</string>
<key>type</key>
<string>0</string>
</dict>
<dict>
<key>chs</key>
<string></string>
<key>cht</key>
<string></string>
<key>gif</key>
<string></string>
<key>png</key>
<string>face_41.png</string>
<key>type</key>
<string>0</string>
</dict>
<dict>
<key>chs</key>
<string></string>
<key>cht</key>
<string></string>
<key>gif</key>
<string></string>
<key>png</key>
<string>face_42.png</string>
<key>type</key>
<string>0</string>
</dict>
<dict>
<key>chs</key>
<string></string>
<key>cht</key>
<string></string>
<key>gif</key>
<string></string>
<key>png</key>
<string>face_43.png</string>
<key>type</key>
<string>0</string>
</dict>
<dict>
<key>chs</key>
<string></string>
<key>cht</key>
<string></string>
<key>gif</key>
<string></string>
<key>png</key>
<string>face_44.png</string>
<key>type</key>
<string>0</string>
</dict>
<dict>
<key>chs</key>
<string></string>
<key>cht</key>
<string></string>
<key>gif</key>
<string></string>
<key>png</key>
<string>face_45.png</string>
<key>type</key>
<string>0</string>
</dict>
<dict>
<key>chs</key>
<string></string>
<key>cht</key>
<string></string>
<key>gif</key>
<string></string>
<key>png</key>
<string>face_46.png</string>
<key>type</key>
<string>0</string>
</dict>
<dict>
<key>chs</key>
<string></string>
<key>cht</key>
<string></string>
<key>gif</key>
<string></string>
<key>png</key>
<string>face_47.png</string>
<key>type</key>
<string>0</string>
</dict>
</array>
</dict>
</plist>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>version</key>
<real>1</real>
<key>packages</key>
<array>
<dict>
<key>id</key>
<string>com.OffcnIM.emoji</string>
<key>version</key>
<integer>0</integer>
<key>display_only</key>
<integer>0</integer>
</dict>
</array>
</dict>
</plist>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>more</key>
<array>
<dict>
<key>name</key>
<string>照片</string>
<key>icon_nor</key>
<string>chatBar_colorMore_photo</string>
<key>icon_sel</key>
<string>chatBar_colorMore_photoSelected</string>
</dict>
<dict>
<key>name</key>
<string>文件</string>
<key>icon_nor</key>
<string>chatBar_colorMore_video</string>
<key>icon_sel</key>
<string>chatBar_colorMore_videoSelected</string>
</dict>
<dict>
<key>name</key>
<string>拍摄</string>
<key>icon_nor</key>
<string>chatBar_colorMore_videoCall</string>
<key>icon_sel</key>
<string>chatBar_colorMore_videoCallSelected</string>
</dict>
</array>
</dict>
</plist>
"KEY" = "阿拉伯语";
"OK" = "حسنا";
"Back" = "الى الخلف";
"Done" = "فعله";
"Sorry" = "آسف";
"Cancel" = "إلغاء";
"Setting" = "ضبط";
"Photos" = "الصور";
"Videos" = "أشرطة فيديو";
"Preview" = "معاينة";
"Full image" = "الصورة كاملة";
"Processing..." = "معالجة...";
"No Photos or Videos" = "لا توجد صور أو مقاطع فيديو";
"Synchronizing photos from iCloud" = "مزامنة الصور من iCloud";
"Can not use camera" = "لا يمكن استخدام الكاميرا";
"Can not choose both video and photo" = "لا يمكن اختيار كل من الفيديو والصور";
"Can not choose both photo and GIF" = "لا يمكن اختيار كل من الصور و GIF";
"Select the video when in multi state, we will handle the video as a photo" = "حدد مقطع الفيديو عندما يكون في حالة متعددة، وسنعمل على معالجة مقطع الفيديو كصورة";
"Can not jump to the privacy settings page, please go to the settings page by self, thank you" = "إذا تعذّر الانتقال إلى صفحة "إعدادات الخصوصية"، فيرجى الانتقال إلى صفحة "الإعدادات" بنفسك، شكرًا لك";
"Select a maximum of %zd photos" = "حدد فقط ما يصل إلى %zd صورة";
"Select a minimum of %zd photos" = "الرجاء تحديد %zd صورة على الأقل";
"Allow %@ to access your album in \"Settings -> Privacy -> Photos\"" = "السماح لـ %@ بالوصول إلى الألبوم في \"الإعدادات > الخصوصية > الصور\"";
"Please allow %@ to access your camera in \"Settings -> Privacy -> Camera\"" = "الرجاء السماح لـ %@ بالوصول إلى الكاميرا في \"الإعدادات > الخصوصية > الكاميرا\"";
"KEY" = "保加利亚语";
"OK" = "Добре";
"Back" = "обратно";
"Done" = "Свършен";
"Sorry" = "съжалявам";
"Cancel" = "Отказ";
"Setting" = "обстановка";
"Photos" = "Снимки";
"Videos" = "Видео";
"Preview" = "предварителен преглед";
"Full image" = "Пълно изображение";
"Processing..." = "Обработка ...";
"No Photos or Videos" = "Няма снимки или видеоклипове";
"Synchronizing photos from iCloud" = "Синхронизиране на снимки от iCloud";
"Can not use camera" = "Не може да се използва камера";
"Can not choose both video and photo" = "Не можете да изберете видео и снимка";
"Can not choose both photo and GIF" = "Не може да се избере снимка и GIF";
"KEY" = "捷克语";
"OK" = "OK";
"Back" = "Zadní";
"Done" = "Hotovo";
"Sorry" = "Promiňte";
"Cancel" = "zrušení";
"Setting" = "Nastavení";
"Photos" = "Fotky";
"Videos" = "Videa";
"Preview" = "Náhled";
"Full image" = "Celý obrázek";
"Processing..." = "Zpracovává se...";
"No Photos or Videos" = "Žádné fotky nebo videa";
"Synchronizing photos from iCloud" = "Synchronizace fotografií z iCloud";
"Can not use camera" = "Nelze použít fotoaparát";
"Can not choose both video and photo" = "Nelze vybrat video ani fotografii";
"Can not choose both photo and GIF" = "Nelze vybrat fotografie a GIF";
"KEY" = "德语";
"OK" = "OK";
"Back" = "Zurück";
"Done" = "Erledigt";
"Sorry" = "Es tut uns leid";
"Cancel" = "Stornieren";
"Setting" = "Rahmen";
"Photos" = "Fotos";
"Videos" = "Videos";
"Preview" = "Vorschau";
"Full image" = "Vollbild";
"Processing..." = "Wird bearbeitet...";
"No Photos or Videos" = "Keine Fotos oder Videos";
"Synchronizing photos from iCloud" = "Fotos aus iCloud synchronisieren";
"Can not use camera" = "Kann die Kamera nicht benutzen";
"Can not choose both video and photo" = "Video und Foto können nicht ausgewählt werden";
"Can not choose both photo and GIF" = "Foto und GIF können nicht ausgewählt werden";
"Select the video when in multi state, we will handle the video as a photo" = "Wenn Sie das Video im Multi-Status auswählen, wird es als Foto behandelt";
"Can not jump to the privacy settings page, please go to the settings page by self, thank you" = "Sie können nicht zur Seite mit den Datenschutz-Einstellungen springen; bitte navigieren Sie selbst zur Einstellungsseite. Vielen Dank.";
"Select a maximum of %zd photos" = "Wählen Sie maximal %zd Bilder aus";
"Select a minimum of %zd photos" = "Bitte wählen Sie mindestens %zd Fotos aus";
"Allow %@ to access your album in \"Settings -> Privacy -> Photos\"" = "Erlauben Sie %@ den Zugriff auf Ihr Album unter: „Einstellungen > Datenschutz > Fotos“";
"Please allow %@ to access your camera in \"Settings -> Privacy -> Camera\"" = "Erlauben Sie %@ den Zugriff auf Ihre Kamera unter: „Einstellungen > Datenschutz > Kamera“";
"KEY" = "希腊语";
"OK" = "Εντάξει";
"Back" = "Πίσω";
"Done" = "Εγινε";
"Sorry" = "Συγνώμη";
"Cancel" = "Ματαίωση";
"Setting" = "Σύνθεση";
"Photos" = "Φωτογραφίες";
"Videos" = "Βίντεο";
"Preview" = "Προεπισκόπηση";
"Full image" = "Πλήρης εικόνα";
"Processing..." = "Επεξεργασία...";
"No Photos or Videos" = "Δεν υπάρχουν φωτογραφίες ή βίντεο";
"Synchronizing photos from iCloud" = "Συγχρονισμός φωτογραφιών από το iCloud";
"Can not use camera" = "Δεν είναι δυνατή η χρήση της κάμερας";
"Can not choose both video and photo" = "Δεν είναι δυνατή η επιλογή του βίντεο και της φωτογραφίας";
"Can not choose both photo and GIF" = "Δεν είναι δυνατή η επιλογή φωτογραφίας και GIF";
"KEY" = "西班牙语";
"OK" = "DE ACUERDO";
"Back" = "Espalda";
"Done" = "Hecho";
"Sorry" = "Lo siento";
"Cancel" = "Cancelar";
"Setting" = "Ajuste";
"Photos" = "Las fotos";
"Videos" = "Videos";
"Preview" = "Avance";
"Full image" = "Imagen completa";
"Processing..." = "Tratamiento...";
"No Photos or Videos" = "No hay fotos o videos";
"Synchronizing photos from iCloud" = "Sincronizando fotos desde iCloud";
"Can not use camera" = "No puedo usar la camara";
"Can not choose both video and photo" = "No se puede elegir tanto el video como la foto.";
"Can not choose both photo and GIF" = "No se puede elegir tanto foto como GIF";
"Select the video when in multi state, we will handle the video as a photo" = "Seleccione el vídeo en estado múltiple, trataremos el vídeo como una fotografía";
"Can not jump to the privacy settings page, please go to the settings page by self, thank you" = "No se puede saltar a la página de ajustes de privacidad, vaya a la página de ajustes manualmente, muchas gracias";
"Select a maximum of %zd photos" = "Seleccione solamente hasta %zd imágenes";
"Select a minimum of %zd photos" = "Seleccione al menos %zd fotografías";
"Allow %@ to access your album in \"Settings -> Privacy -> Photos\"" = "Permita que %@ acceda a su galería en \"Ajustes > Privacidad > Fotografías\"";
"Please allow %@ to access your camera in \"Settings -> Privacy -> Camera\"" = "Permita que %@ acceda a su cámara en \"Ajustes > Privacidad > Cámara\"";
"KEY" = "法语";
"OK" = "D'accord";
"Back" = "Retour";
"Done" = "Terminé";
"Sorry" = "Pardon";
"Cancel" = "Annuler";
"Setting" = "Réglage";
"Photos" = "Photos";
"Videos" = "Vidéos";
"Preview" = "Aperçu";
"Full image" = "Image complète";
"Processing..." = "En traitement...";
"No Photos or Videos" = "Aucune photo ou vidéo";
"Synchronizing photos from iCloud" = "Synchroniser des photos depuis iCloud";
"Can not use camera" = "Impossible d'utiliser la caméra";
"Can not choose both video and photo" = "Impossible de choisir à la fois la vidéo et la photo";
"Can not choose both photo and GIF" = "Impossible de choisir à la fois photo et GIF";
"Select the video when in multi state, we will handle the video as a photo" = "Sélectionnez la vidéo lorsqu’elle est en état multiple, nous la traiterons comme une photo";
"Can not jump to the privacy settings page, please go to the settings page by self, thank you" = "Impossible d'ouvrir la page des paramètres de confidentialité, veuillez accéder vous-même à la page des paramètres, merci";
"Select a maximum of %zd photos" = "Vous pouvez uniquement sélectionner un maximum de %zd images";
"Select a minimum of %zd photos" = "Veuillez sélectionner un minimum de %zd photos";
"Allow %@ to access your album in \"Settings -> Privacy -> Photos\"" = "Autorisez %@ à accéder à votre album dans « Paramètres > Confidentialité > Photos »";
"Please allow %@ to access your camera in \"Settings -> Privacy -> Camera\"" = "Autorisez %@ à accéder à votre appareil photo dans « Paramètres > Confidentialité > Appareil photo »";
"KEY" = "希伯来语";
"OK" = "בסדר";
"Back" = "חזור";
"Done" = "בוצע";
"Sorry" = "מצטער";
"Cancel" = "בטל";
"Setting" = "הגדרה";
"Photos" = "תמונות";
"Videos" = "סרטונים";
"Preview" = "תצוגה מקדימה";
"Full image" = "תמונה מלאה";
"Processing..." = "מעבד...";
"No Photos or Videos" = "אין תמונות או סרטונים";
"Synchronizing photos from iCloud" = "סנכרון תמונות מ - iCloud";
"Can not use camera" = "לא ניתן להשתמש במצלמה";
"Can not choose both video and photo" = "לא ניתן לבחור הן בסרטון והן בתמונה";
"Can not choose both photo and GIF" = "לא ניתן לבחור גם תמונה וגם קובץ GIF";
"KEY" = "意大利语";
"OK" = "ok";
"Back" = "Indietro";
"Done" = "Fatto";
"Sorry" = "scusate";
"Cancel" = "Annulla";
"Setting" = "Ambientazione";
"Photos" = "Fotografie";
"Videos" = "video";
"Preview" = "Anteprima";
"Full image" = "Immagine completa";
"Processing..." = "In lavorazione...";
"No Photos or Videos" = "Nessuna foto o video";
"Synchronizing photos from iCloud" = "Sincronizzazione delle foto da iCloud";
"Can not use camera" = "Non è possibile utilizzare la fotocamera";
"Can not choose both video and photo" = "Non è possibile scegliere sia video che foto";
"Can not choose both photo and GIF" = "Non è possibile scegliere sia foto che GIF";
"KEY" = "日语";
"OK" = "OK";
"Back" = "バック";
"Done" = "完了";
"Sorry" = "ごめんなさい";
"Cancel" = "キャンセル";
"Setting" = "設定";
"Photos" = "写真";
"Videos" = "動画";
"Preview" = "プレビュー";
"Full image" = "フルイメージ";
"Processing..." = "処理...";
"No Photos or Videos" = "写真やビデオはありません";
"Synchronizing photos from iCloud" = "iCloudから写真を同期する";
"Can not use camera" = "カメラが使えない";
"Can not choose both video and photo" = "ビデオと写真の両方を選択することはできません";
"Can not choose both photo and GIF" = "写真とGIFの両方を選択することはできません";
"Select the video when in multi state, we will handle the video as a photo" = "多肢選択の状態で、ビデオを選択すると、ビデオをデフォルトに画像として送信します。";
"Can not jump to the privacy settings page, please go to the settings page by self, thank you" = "プライバシー設定画面にジャンプできません。手動で設定画面を表示してください。";
"Select a maximum of %zd photos" = "写真は多くとも%zd 枚選択できます。";
"Select a minimum of %zd photos" = "少なくとも %zd 枚の写真を選択してください。";
"Allow %@ to access your album in \"Settings -> Privacy -> Photos\"" = "iPhoneの「設定-プライバシー-写真」のオプションで、r%@の携帯電話のアルバムへのアクセス権限を許可してください。";
"Please allow %@ to access your camera in \"Settings -> Privacy -> Camera\"" = "iPhoneの「設定-プライバシー-カメラ」で、%@のカメラへのアクセス権限を許可してください。";
"KEY" = "朝鲜语";
"OK" = "그래";
"Back" = "뒤로";
"Done" = "완료";
"Sorry" = "미안해요";
"Cancel" = "취소";
"Setting" = "설정";
"Photos" = "사진";
"Videos" = "동영상";
"Preview" = "미리 보기";
"Full image" = "전체 이미지";
"Processing..." = "처리...";
"No Photos or Videos" = "아무 사진이 나 동영상";
"Synchronizing photos from iCloud" = "ICloud에서 사진을 동기화";
"Can not use camera" = "카메라를 사용할 수 없습니다.";
"Can not choose both video and photo" = "비디오와 사진 둘 다를 선택할 수 없습니다.";
"Can not choose both photo and GIF" = "사진 및 GIF를 선택할 수 없습니다.";
"Select the video when in multi state, we will handle the video as a photo" = "다중 선택 모드에서 비디오를 선택하면 비디오를 사진으로 처리합니다.";
"Can not jump to the privacy settings page, please go to the settings page by self, thank you" = "개인 정보 보호 설정 페이지로 바로 이동할 수 없습니다. 설정 페이지로 직접 이동해 주세요. 감사합니다.";
"Select a maximum of %zd photos" = "최대 %zd장의 이미지만 선택할 수 있습니다.";
"Select a minimum of %zd photos" = "최소 %zd장의 사진을 선택해 주세요.";
"Allow %@ to access your album in \"Settings -> Privacy -> Photos\"" = "\"설정 > 개인 정보 보호 > 사진\"에서 %@이(가) 앨범에 접근할 수 있도록 허용하세요.";
"Please allow %@ to access your camera in \"Settings -> Privacy -> Camera\"" = "\"설정 > 개인 정보 보호 > 카메라\"에서 %@이(가) 카메라에 접근할 수 있도록 허용하세요.";
"KEY" = "韩语";
"OK" = "승인";
"Back" = "뒤로";
"Done" = "끝난";
"Sorry" = "죄송합니다";
"Cancel" = "취소";
"Setting" = "환경";
"Photos" = "사진들";
"Videos" = "비디오";
"Preview" = "시사";
"Full image" = "전체 이미지";
"Processing..." = "처리 중 ...";
"No Photos or Videos" = "사진이나 동영상 없음";
"Synchronizing photos from iCloud" = "iCloud에서 사진 동기화";
"Can not use camera" = "카메라를 사용할 수 없습니다.";
"Can not choose both video and photo" = "동영상과 사진을 모두 선택할 수 없습니다.";
"Can not choose both photo and GIF" = "사진과 GIF를 모두 선택할 수 없습니다.";
"KEY" = "荷兰语";
"OK" = "OK";
"Back" = "Terug";
"Done" = "Gedaan";
"Sorry" = "Sorry";
"Cancel" = "annuleren";
"Setting" = "omgeving";
"Photos" = "foto's";
"Videos" = "Videos";
"Preview" = "Voorbeeld";
"Full image" = "Volledig beeld";
"Processing..." = "Verwerken...";
"No Photos or Videos" = "Geen foto's of video's";
"Synchronizing photos from iCloud" = "Foto's synchroniseren vanuit iCloud";
"Can not use camera" = "Kan de camera niet gebruiken";
"Can not choose both video and photo" = "Kan niet zowel video als foto kiezen";
"Can not choose both photo and GIF" = "Kan niet zowel foto als GIF kiezen";
"KEY" = "波兰语";
"OK" = "dobrze";
"Back" = "Z powrotem";
"Done" = "Gotowe";
"Sorry" = "Przepraszam";
"Cancel" = "Anuluj";
"Setting" = "Oprawa";
"Photos" = "Zdjęcia";
"Videos" = "Filmy";
"Preview" = "Zapowiedź";
"Full image" = "Pełny obraz";
"Processing..." = "Przetwarzanie...";
"No Photos or Videos" = "Brak zdjęć lub filmów";
"Synchronizing photos from iCloud" = "Synchronizowanie zdjęć z iCloud";
"Can not use camera" = "Nie można używać aparatu";
"Can not choose both video and photo" = "Nie można wybrać zarówno wideo,jak i zdjęcia";
"Can not choose both photo and GIF" = "Nie można wybrać zarówno zdjęcia,jak i GIF";
"KEY" = "葡萄牙语";
"OK" = "Está bem";
"Back" = "De volta";
"Done" = "Feito";
"Sorry" = "Desculpa";
"Cancel" = "Cancelar";
"Setting" = "Configuração";
"Photos" = "Fotos";
"Videos" = "Vídeos";
"Preview" = "Visualizar";
"Full image" = "Imagem Completa";
"Processing..." = "Em processamento...";
"No Photos or Videos" = "Sem fotos ou vídeos";
"Synchronizing photos from iCloud" = "Sincronizando fotos do iCloud";
"Can not use camera" = "Não pode usar a câmera";
"Can not choose both video and photo" = "Não é possível escolher vídeo e foto";
"Can not choose both photo and GIF" = "Não é possível escolher foto e GIF";
"Select the video when in multi state, we will handle the video as a photo" = "Se estiver em estado múltiplo, selecione a opção vídeo; iremos utilizar o vídeo como uma foto";
"Can not jump to the privacy settings page, please go to the settings page by self, thank you" = "Não é possível avançar para a página de definições de privacidade, aceda à página de definições você mesmo, obrigado";
"Select a maximum of %zd photos" = "Selecione apenas %zd imagens,no máximo";
"Select a minimum of %zd photos" = "Selecione %zd fotos,no mínimo";
"Allow %@ to access your album in \"Settings -> Privacy -> Photos\"" = "Permita a %@ aceder ao seu álbum em “Definições > Privacidade > Fotos”";
"Please allow %@ to access your camera in \"Settings -> Privacy -> Camera\"" = "Permita a %@ aceder à sua câmara em “Definições > Privacidade > Câmara”";
"KEY" = "罗马尼亚语";
"OK" = "O.K";
"Back" = "Înapoi";
"Done" = "Terminat";
"Sorry" = "scuze";
"Cancel" = "Anulare";
"Setting" = "reglaj";
"Photos" = "Fotografii";
"Videos" = "Videoclipuri";
"Preview" = "previzualizare";
"Full image" = "Imagine completă";
"Processing..." = "Prelucrare...";
"No Photos or Videos" = "Nu există fotografii sau videoclipuri";
"Synchronizing photos from iCloud" = "Sincronizarea fotografiilor cu iCloud";
"Can not use camera" = "Nu pot folosi camera";
"Can not choose both video and photo" = "Nu puteți alege atât videoclipul,cât și fotografia";
"Can not choose both photo and GIF" = "Nu puteți alege atât fotografia,cât și GIF";
"KEY" = "俄语";
"OK" = "Хорошо";
"Back" = "назад";
"Done" = "Готово";
"Sorry" = "сожалею";
"Cancel" = "отменить";
"Setting" = "настройка";
"Photos" = "Фото";
"Videos" = "Видео";
"Preview" = "предварительный просмотр";
"Full image" = "Полное изображение";
"Processing..." = "Обработка ...";
"No Photos or Videos" = "Нет фото или видео";
"Synchronizing photos from iCloud" = "Синхронизация фотографий из iCloud";
"Can not use camera" = "Не могу использовать камеру";
"Can not choose both video and photo" = "Не могу выбрать как видео,так и фото";
"Can not choose both photo and GIF" = "Не могу выбрать фото и GIF";
"Select the video when in multi state, we will handle the video as a photo" = "В случае выбора видео при нахождении в мультирежиме видео будет обработано как фотография";
"Can not jump to the privacy settings page, please go to the settings page by self, thank you" = "Не удается перейти на страницу настроек конфиденциальности. Перейдите на эту страницу самостоятельно";
"Select a maximum of %zd photos" = "Вы можете выбрать до %zd изображений";
"Select a minimum of %zd photos" = "Вы можете выбрать не менее %zd изображений";
"Allow %@ to access your album in \"Settings -> Privacy -> Photos\"" = "Разрешите доступ %@ к вашему альбому,перейдя в Настройки > Конфиденциальность > Фото";
"Please allow %@ to access your camera in \"Settings -> Privacy -> Camera\"" = "Разрешите доступ %@ к камере вашего устройства,перейдя в Настройки > Конфиденциальность > Камера";
"KEY" = "斯洛伐克语";
"OK" = "OK";
"Back" = "späť";
"Done" = "hotový";
"Sorry" = "Prepáč";
"Cancel" = "Zrušiť";
"Setting" = "nastavenie";
"Photos" = "fotografie";
"Videos" = "videá";
"Preview" = "Náhľad";
"Full image" = "Celý obrázok";
"Processing..." = "Spracovanie ...";
"No Photos or Videos" = "Žiadne fotografie alebo videá";
"Synchronizing photos from iCloud" = "Synchronizácia fotografií z iCloud";
"Can not use camera" = "Fotoaparát nie je možné používať";
"Can not choose both video and photo" = "Nie je možné vybrať video aj fotografiu";
"Can not choose both photo and GIF" = "Nie je možné vybrať fotografie a obrázky GIF";
"KEY" = "瑞典语";
"OK" = "ok";
"Back" = "Tillbaka";
"Done" = "Gjort";
"Sorry" = "Förlåt";
"Cancel" = "Annullera";
"Setting" = "Miljö";
"Photos" = "foton";
"Videos" = "videoklipp";
"Preview" = "Förhandsvisning";
"Full image" = "Fullbild";
"Processing..." = "Bearbetning ...";
"No Photos or Videos" = "Inga foton eller videor";
"Synchronizing photos from iCloud" = "Synkronisera foton från iCloud";
"Can not use camera" = "Kan inte använda kamera";
"Can not choose both video and photo" = "Kan inte välja både video och foto";
"Can not choose both photo and GIF" = "Kan inte välja både foto och GIF";
"KEY" = "泰语";
"OK" = "ตกลง";
"Back" = "กลับ";
"Done" = "เสร็จสิ้น";
"Sorry" = "ขอโทษ";
"Cancel" = "ยกเลิก";
"Setting" = "การตั้งค่า";
"Photos" = "ภาพถ่าย";
"Videos" = "วิดีโอ";
"Preview" = "ดูตัวอย่าง";
"Full image" = "ภาพเต็ม";
"Processing..." = "กำลังประมวลผล ...";
"No Photos or Videos" = "ไม่มีรูปภาพหรือวิดีโอ";
"Synchronizing photos from iCloud" = "การซิงโครไนซ์ภาพถ่ายจาก iCloud";
"Can not use camera" = "ไม่สามารถใช้กล้องถ่ายรูป";
"Can not choose both video and photo" = "ไม่สามารถเลือกได้ทั้งวิดีโอและภาพถ่าย";
"Can not choose both photo and GIF" = "ไม่สามารถเลือกได้ทั้งภาพถ่ายและ GIF";
"KEY" = "土耳其语";
"OK" = "tamam";
"Back" = "Geri";
"Done" = "tamam";
"Sorry" = "Afedersiniz";
"Cancel" = "İptal etmek";
"Setting" = "Ayar";
"Photos" = "Fotoğraflar";
"Videos" = "Videolar";
"Preview" = "Ön izleme";
"Full image" = "Tam görüntü";
"Processing..." = "İşleme...";
"No Photos or Videos" = "Fotoğraf veya Video Yok";
"Synchronizing photos from iCloud" = "Fotoğrafları iCloud'dan senkronize etme";
"Can not use camera" = "Kamera kullanılamaz";
"Can not choose both video and photo" = "Hem video hem de fotoğraf seçilemiyor";
"Can not choose both photo and GIF" = "Hem fotoğraf hem de GIF seçilemiyor";
"KEY" = "乌克兰语";
"OK" = "в порядку";
"Back" = "Назад";
"Done" = "Виконано";
"Sorry" = "Вибачте";
"Cancel" = "Скасувати";
"Setting" = "Налаштування";
"Photos" = "Фотографії";
"Videos" = "Відео";
"Preview" = "Попередній перегляд";
"Full image" = "Повне зображення";
"Processing..." = "Обробка ...";
"No Photos or Videos" = "Немає фотографій або відео";
"Synchronizing photos from iCloud" = "Синхронізація фотографій з iCloud";
"Can not use camera" = "Не можна використовувати камеру";
"Can not choose both video and photo" = "Неможливо вибрати як відео,так і фото";
"Can not choose both photo and GIF" = "Неможливо вибрати як фото,так і GIF";
"KEY" = "越南语";
"OK" = "Xác nhận";
"Back" = "Quay lại";
"Done" = "Hoàn thành";
"Sorry" = "Xin lỗi";
"Cancel" = "Hủy";
"Setting" = "Cài đặt";
"Photos" = "Hình";
"Videos" = "Clip";
"Preview" = "Xem trước";
"Full image" = "Hình gốc";
"Processing..." = "Đang xử lý...";
"No Photos or Videos" = "Không có ảnh hoặc video";
"Can not use camera" = "Máy chụp hình không khả dụng";
"Synchronizing photos from iCloud" = "Đang đồng bộ hình ảnh từ ICloud";
"Can not choose both video and photo" = "Trong lúc chọn hình ảnh không cùng lúc chọn video";
"Can not choose both photo and GIF" = "Trong lúc chọn hình ảnh không cùng lúc chọn hình GIF";
"Select the video when in multi state, we will handle the video as a photo" = "Chọn hình ảnh cùng video, video sẽ bị mặc nhận thành hình ảnh và gửi đi.";
"Can not jump to the privacy settings page, please go to the settings page by self, thank you" = "Không thể chuyển tự động qua trang cài đặt riêng tư, bạn hãy thoát ra cà điều chỉnh lại, cám ơn bạn.";
"Select a maximum of %zd photos" = "Bạn chỉ được chọn nhiều nhất %zd tấm hình";
"Select a minimum of %zd photos" = "Chọn ít nhất %zd tấm hình";
"Allow %@ to access your album in \"Settings -> Privacy -> Photos\"" = "Vui lòng tại mục iPhone \" Cài đặt – quyền riêng tư - Ảnh\" mở quyền cho phép %@ truy cập ảnh.";
"Please allow %@ to access your camera in \"Settings -> Privacy -> Camera\"" = "Vui lòng tại mục iPhone \" Cài đặt – quyền riêng tư - Ảnh\" mở quyền cho phép %@ truy cập máy ảnh";
"ZYYJMJRefreshHeaderIdleText" = "下拉可以刷新";
"ZYYJMJRefreshHeaderPullingText" = "鬆開立即刷新";
"ZYYJMJRefreshHeaderRefreshingText" = "正在刷新數據中...";
"ZYYJMJRefreshAutoFooterIdleText" = "點擊或上拉加載更多";
"ZYYJMJRefreshAutoFooterRefreshingText" = "正在加載更多的數據...";
"ZYYJMJRefreshAutoFooterNoMoreDataText" = "已經全部加載完畢";
"ZYYJMJRefreshBackFooterIdleText" = "上拉可以加載更多";
"ZYYJMJRefreshBackFooterPullingText" = "鬆開立即加載更多";
"ZYYJMJRefreshBackFooterRefreshingText" = "正在加載更多的數據...";
"ZYYJMJRefreshBackFooterNoMoreDataText" = "已經全部加載完畢";
"ZYYJMJRefreshHeaderLastTimeText" = "最後更新:";
"ZYYJMJRefreshHeaderDateTodayText" = "今天";
"ZYYJMJRefreshHeaderNoneLastDateText" = "無記錄";
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment