消息模块-发送图片查看图片
This commit is contained in:
1
Podfile
1
Podfile
@@ -61,6 +61,7 @@ target 'xplan-ios' do
|
||||
#vap礼物动画
|
||||
pod 'QGVAPlayer'
|
||||
pod 'IQKeyboardManager', '~> 6.5.5'
|
||||
pod 'TZImagePickerController'
|
||||
#调试
|
||||
pod 'LookinServer', :configurations => ['Debug']
|
||||
|
||||
|
@@ -74,6 +74,7 @@ PODS:
|
||||
- Protobuf (~> 3.4)
|
||||
- SZTextView (1.3.0)
|
||||
- TXLiteAVSDK_TRTC (8.7.10102)
|
||||
- TZImagePickerController (3.8.1)
|
||||
- UMCommon (7.3.5):
|
||||
- UMDevice
|
||||
- UMDevice (2.0.5)
|
||||
@@ -119,6 +120,7 @@ DEPENDENCIES:
|
||||
- SVGAPlayer (~> 2.3)
|
||||
- SZTextView
|
||||
- TXLiteAVSDK_TRTC (from `http://pod-1252463788.cosgz.myqcloud.com/liteavsdkspec/TXLiteAVSDK_TRTC.podspec`)
|
||||
- TZImagePickerController
|
||||
- UMCommon
|
||||
- UMDevice
|
||||
- YYText
|
||||
@@ -131,6 +133,7 @@ SPEC REPOS:
|
||||
- NTESBaseComponent
|
||||
- NTESQuickPass
|
||||
- QGVAPlayer
|
||||
- TZImagePickerController
|
||||
trunk:
|
||||
- AFNetworking
|
||||
- AgoraRtcEngine_iOS
|
||||
@@ -204,6 +207,7 @@ SPEC CHECKSUMS:
|
||||
SVGAPlayer: 318b85a78b61292d6ae9dfcd651f3f0d1cdadd86
|
||||
SZTextView: 094dc6acc9beec537685c545d6e3e0d4975174e1
|
||||
TXLiteAVSDK_TRTC: e78365f430926a1064e175fd8d97601559e7d3d1
|
||||
TZImagePickerController: 943511626019431372cf908f24c114521e484f0e
|
||||
UMCommon: ab4d875ddefe1b06c60b577e4a58bc4d433ee067
|
||||
UMDevice: c13bbb2e8ca6c67d1e23e03162553e3ec5a8b5b0
|
||||
YYCache: 8105b6638f5e849296c71f331ff83891a4942952
|
||||
@@ -211,6 +215,6 @@ SPEC CHECKSUMS:
|
||||
YYText: 5c461d709e24d55a182d1441c41dc639a18a4849
|
||||
YYWebImage: 5f7f36aee2ae293f016d418c7d6ba05c4863e928
|
||||
|
||||
PODFILE CHECKSUM: 5f8d1ca73148363e1d2c4871b0136f5edc0ee8e5
|
||||
PODFILE CHECKSUM: f2682cf01b67e68f847979b09786b508a737bed6
|
||||
|
||||
COCOAPODS: 1.11.2
|
||||
|
@@ -7,16 +7,17 @@
|
||||
|
||||
#import "MessageContentImage.h"
|
||||
#import "NetImageView.h"
|
||||
|
||||
#import "SDPhotoBrowser.h"
|
||||
#import <NIMSDK/NIMSDK.h>
|
||||
#import <Masonry/Masonry.h>
|
||||
|
||||
#define MESSAGE_IMAGE_PADDING 10
|
||||
#define MESSAGE_IMAGE_MAX_SIZE (CONTENT_WIDTH_MAX / 3 * 2)
|
||||
|
||||
@interface MessageContentImage()
|
||||
@interface MessageContentImage()<SDPhotoBrowserDelegate>
|
||||
|
||||
@property (nonatomic, strong) NetImageView * messageImage;
|
||||
@property (nonatomic,strong) NIMImageObject *imageObject;
|
||||
|
||||
@end
|
||||
|
||||
@@ -56,6 +57,7 @@
|
||||
[[NIMSDK sharedSDK].chatManager fetchMessageAttachment:message error:nil];
|
||||
} else {
|
||||
NIMImageObject * imageObject = (NIMImageObject*) message.messageObject;
|
||||
self.imageObject = imageObject;
|
||||
NSData *imageData = [[NSData alloc] initWithContentsOfFile:imageObject.thumbPath];
|
||||
image = [UIImage imageWithData:imageData scale:[UIScreen mainScreen].scale];
|
||||
|
||||
@@ -76,9 +78,32 @@
|
||||
}
|
||||
}
|
||||
|
||||
#pragma mark - SDPhotoBrowserDelegate
|
||||
- (NSURL *)photoBrowser:(SDPhotoBrowser *)browser highQualityImageURLForIndex:(NSInteger)index {
|
||||
return [NSURL URLWithString:self.imageObject.url];
|
||||
}
|
||||
|
||||
- (UIImage *)photoBrowser:(SDPhotoBrowser *)browser placeholderImageForIndex:(NSInteger)index {
|
||||
return [UIImageConstant defalutBannerPlaceholder];
|
||||
}
|
||||
|
||||
- (void)didTapImage {
|
||||
SDPhotoBrowser *browser = [[SDPhotoBrowser alloc]init];
|
||||
browser.sourceImagesContainerView = self;
|
||||
browser.delegate = self;
|
||||
browser.imageCount = 1;
|
||||
browser.currentImageIndex = 0;
|
||||
browser.isMe = NO;
|
||||
[browser show];
|
||||
}
|
||||
|
||||
|
||||
- (NetImageView *)messageImage {
|
||||
if (!_messageImage) {
|
||||
_messageImage = [[NetImageView alloc] init];
|
||||
_messageImage.userInteractionEnabled = YES;
|
||||
UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(didTapImage)];
|
||||
[_messageImage addGestureRecognizer:tap];
|
||||
}
|
||||
return _messageImage;
|
||||
}
|
||||
|
@@ -8,11 +8,13 @@
|
||||
#import "SessionViewController.h"
|
||||
#import <Masonry/Masonry.h>
|
||||
#import <IQKeyboardManager/IQKeyboardManager.h>
|
||||
#import <TZImagePickerController/TZImagePickerController.h>
|
||||
///Tool
|
||||
#import "XCCurrentVCStackManager.h"
|
||||
#import "NIMMessageMaker.h"
|
||||
#import "XPMacro.h"
|
||||
#import "UITableView+NIMScrollToBottom.h"
|
||||
#import "ThemeColor.h"
|
||||
///Model
|
||||
#import "RoomInfoModel.h"
|
||||
#import "UserInfoModel.h"
|
||||
@@ -30,7 +32,7 @@
|
||||
#import "MessageProtocol.h"
|
||||
|
||||
|
||||
@interface SessionViewController ()<MessageProtocol, UITableViewDelegate, UITableViewDataSource, NIMChatManagerDelegate, NIMConversationManagerDelegate, NIMMediaManagerDelegate, XPSessionMessageHeadViewDelegate, MessageCellDelegate, SessionToolbarViewDelegate>
|
||||
@interface SessionViewController ()<MessageProtocol, UITableViewDelegate, UITableViewDataSource, NIMChatManagerDelegate, NIMConversationManagerDelegate, NIMMediaManagerDelegate, XPSessionMessageHeadViewDelegate, MessageCellDelegate, SessionToolbarViewDelegate, TZImagePickerControllerDelegate>
|
||||
|
||||
@property (nonatomic, strong) NIMSession * session;
|
||||
@property (nonatomic, strong) NSMutableArray<NIMMessage *> * messages;
|
||||
@@ -284,6 +286,16 @@
|
||||
- (void)didSelectMenuItem:(MessageMenuModel *)info {
|
||||
switch (info.type) {
|
||||
case MessageMenuType_Photo:
|
||||
{
|
||||
TZImagePickerController *imagePickerVc = [[TZImagePickerController alloc] initWithMaxImagesCount:1 delegate:self];
|
||||
imagePickerVc.modalPresentationStyle = UIModalPresentationOverFullScreen;
|
||||
imagePickerVc.allowPickingVideo = NO;
|
||||
imagePickerVc.allowTakeVideo = NO;
|
||||
imagePickerVc.naviBgColor = [ThemeColor appCellBackgroundColor];
|
||||
imagePickerVc.naviTitleColor = [ThemeColor mainTextColor];
|
||||
imagePickerVc.barItemTextColor = [ThemeColor mainTextColor];
|
||||
[self presentViewController:imagePickerVc animated:YES completion:nil];
|
||||
}
|
||||
break;
|
||||
case MessageMenuType_Gift:
|
||||
break;
|
||||
@@ -292,6 +304,26 @@
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#pragma mark - TZImagePickerControllerDelegate
|
||||
- (void)imagePickerController:(TZImagePickerController *)picker didFinishPickingPhotos:(NSArray<UIImage *> *)photos sourceAssets:(NSArray *)assets isSelectOriginalPhoto:(BOOL)isSelectOriginalPhoto infos:(NSArray<NSDictionary *> *)infos {
|
||||
[photos enumerateObjectsUsingBlock:^(UIImage * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
|
||||
if (obj) {
|
||||
// 构造出具体会话
|
||||
NIMSession *session = [NIMSession session:self.session.sessionId type:NIMSessionTypeP2P];
|
||||
// 获得图片附件对象
|
||||
NIMImageObject *object = [[NIMImageObject alloc] initWithImage:obj];
|
||||
// 构造出具体消息并注入附件
|
||||
NIMMessage *message = [[NIMMessage alloc] init];
|
||||
message.messageObject = object;
|
||||
// 错误反馈对象
|
||||
NSError *error = nil;
|
||||
// 发送消息
|
||||
[[NIMSDK sharedSDK].chatManager sendMessage:message toSession:session error:&error];
|
||||
}
|
||||
}];
|
||||
}
|
||||
|
||||
#pragma mark - Getters And Setters
|
||||
- (NSArray<NIMMessage *> *)messages {
|
||||
if (!_messages) {
|
||||
|
Reference in New Issue
Block a user