美文网首页
网易IM-Swift版的相关问题

网易IM-Swift版的相关问题

作者: iOS_我更专业 | 来源:发表于2018-01-08 13:24 被阅读0次

    1、其他第三方的问题

        pod 'NIMKit',

        这个Pod会自带UI框架和IM框架,其中还包括

    pod NIMKit之后带的第三方

        至此,网易项目就可以了,想要调用,直接在Swift头问价加载:

    NIMKit头文件

    我的项目里用到了:SwiftyJSON、ObjectMapper、Alamofire等其他第三方,这类第三方因为在pods文件倒入时,不能添加use_frameworks!会报错,所以需要手动导入。

        直接在GitHub下载需要的第三方(以Alamofire为例):

    直接将项目包放置项目文件架里 选择红框即可 再在这里添加即可,注意选择iOS的

    2、IM初始化

            Swiftt:AppDelegate初始化: NIMSDK.shared().register(withAppID: “”, cerName:nil)

                        登录:                        NIMSDK.shared().loginManager.login(“”, token:“”) { (error)in

                    if error !=nil{

                        //网易云登录失败

                    }

                }

    3、IM播放语音的功能

        因为我们要保存网易IM时的语音URL,直接就调用了网易的播放语音功能:

            a、需继承:NIMMediaManagerDelegate

            b、添加代理:NIMSDK .shared().mediaManager.add(self)

            c、播放:NIMSDK.shared().mediaManager.play(filePath)//filePath为网易加密的语音文件url,所以这里得下载到本地,这里就不放置下载代码了~

                 停止:NIMSDK.shared().mediaManager.stopPlay()

            d、语音播放的几个回掉:

                func playAudio(_filePath:String, didBeganWithError error:Error?) {

                    print("开始了",error)

                }

                func playAudio(_filePath:String, didCompletedWithError error:Error?) {

                    print("播完了",error)

                }

                如果需要还可去NIMMediaManagerDelegate里找需要的方法。

    4、网易IM与Swift代码的衔接

            实际项目里,我们自定义了发送消息的权限,但因为Swift与OC的调用不方便,造成了我们实际自己操作的时候,这两个类用OC去封装实现了。

        这里我们在NIMSessionViewController类里增加了:@property (nonatomic, strong) NSString *USER_ID;这个属性,但是我是用Swift调用的,点语法直接传值的时候会传不过来,得自己再写Set/Get方法。

    5、聊天室更改用户昵称

    NIMMessageChatroomExtension *nNIMMessageChatroomExtension = [[NIMMessageChatroomExtension alloc]init];

            nNIMMessageChatroomExtension.roomNickname=@"***";

            nNIMMessageChatroomExtension.roomAvatar = @"https://www.baidu.com/img/bd_logo1.png";

            self.messageForMenu.messageExt= nNIMMessageChatroomExtension;

        自己要拦截消息,再重写willSendMessage时,消息sendMessage等将发送不出去,所以请别重写这个方法。想要拦截请在NIMSessionViewController里拦截,回掉。

    如果有什么问题可随时私聊。谢谢🙏。

    相关文章

      网友评论

          本文标题:网易IM-Swift版的相关问题

          本文链接:https://www.haomeiwen.com/subject/ujvvnxtx.html