swift_IM的坑

最近項(xiàng)目需求,然后就要接im,因?yàn)轫?xiàng)目是swfit的,然后很多坑都要自己踩,自己填,然后就遇到很多坑,然后看了好幾家的im,就先討論一下im的坑,有騰訊,阿里,融云,然后順便看了leanclound的文檔,

先說一下im的大致流程,一般都是初始化sdk,然后注冊,登錄,監(jiān)聽會話,收發(fā)消息,退出登錄
然后這我只接了前三家,這里面最難接的是騰訊的,文檔也看的頭疼,最好接的是融云,就幾句代碼就搞定了,阿里百川的文檔感覺就是純粹是為了寫文檔而寫的文檔,感覺就只有個(gè)簡化版的文檔,
現(xiàn)在就先說說騰訊,騰訊真的是接的頭大,坑很多,而且官方的demo也寫的很亂,他們的框架有登錄注冊的一體化界面,但是沒有會話列表和會話界面,所以如果要寫的話就要自己監(jiān)聽會話,解析會話列表,解析會話,也有可能是因?yàn)槲覀冺?xiàng)目是swift的,所以也用不了他的demo上的代碼。oc的項(xiàng)目可能會好接一點(diǎn),但是對于swift的來說,真的是很難接的,
然后我接的第二個(gè)是融云的,很方便,對于swift的來說,下面是我寫的融云的demo視圖控制器里面的代碼

import UIKit


 var strMsg:String = ""


class ViewController: RCConversationListViewController{
   
 
    override func viewDidLoad() {
        super.viewDidLoad()
        initSdk()
        loginRCIM()
        self.setDisplayConversationTypes([RCConversationType.ConversationType_PRIVATE.rawValue, RCConversationType.ConversationType_GROUP.rawValue,RCConversationType.ConversationType_DISCUSSION.rawValue])
        
        
        
        // Do any additional setup after loading the view, typically from a nib.
    }
    func initSdk(){
         RCIM.shared().initWithAppKey("你自己的appkey")
    }
    func loginRCIM(){
        //v0tbKdy6d56FLTz70/NuUv83QwmF6X8F1GOlJSqqcbOwmWMGcNoJFZQM4zwOUo4Hb6OachOiHkXSKwII6Z3pxA==
        RCIM.shared().connect(withToken: "(這個(gè)token是調(diào)用融云的后臺服務(wù)器利用userid,username,用戶頭像,生成的token,如果是自己用的話,可以調(diào)自己的后臺訪問融云,然后返回到前端)", success: { (userId) in
            print("\(userId!)")
        }, error: { (err_code) in
            print("\(err_code)")
        }) {
            print("token wrong")
        }
    }
    
    override func onSelectedTableRow(_ conversationModelType: RCConversationModelType, conversationModel model: RCConversationModel!, at indexPath: IndexPath!) {
        let conversationVC = RCConversationViewController()
        conversationVC.conversationType = model.conversationType
        conversationVC.targetId = model.targetId
        conversationVC.title = "message"
        self.navigationController?.pushViewController(conversationVC, animated: true)
    }
    
    
    
}

這里就要說生成會話列表之后的點(diǎn)擊事件,因?yàn)闀捔斜淼母割惗际莟ableview,然后騰訊和融云都是直接把點(diǎn)擊的那個(gè)didselectrowat這個(gè)方法暴露或者可以重寫的,你要添加點(diǎn)擊事件或者生成會話界面就直接在這里面實(shí)現(xiàn)就可以了,融云的坑還好吧,我用swift接的時(shí)候,沒咋發(fā)現(xiàn)有什么坑,

然后要說最好一個(gè)阿里百川的了,我接的時(shí)候有兩個(gè)問題,一個(gè)是會話列表不出來,一個(gè)是點(diǎn)擊了之后沒反應(yīng),阿里百川的接入方式和融云,騰訊都不一樣,然后和leanclound是差不多的,然后阿里的那個(gè)技術(shù)論壇基本是沒人的,然后后面老大吧我拉了一個(gè)釘釘?shù)娜汉退麄兡沁叺娜私涣鳎蝗f項(xiàng)目是swift的,那邊找了個(gè)技術(shù)人員是不懂swift的,然后問了一些問題基本都沒解決的,后來還是在靠的我自己解決的,先說會話列表的問題,最開始的時(shí)候,我的會話界面是用的viewcontroller自己的導(dǎo)航控制區(qū)push的,然后沒東西出來,也不知道什么問題,然后后面我用present方式,然后就出來了。第二個(gè)問題是點(diǎn)擊的,就這個(gè)東西卡了我2天吧,周五到周一,周末沒想過這些問題,阿里的tableview的點(diǎn)擊事件沒有暴露出來,然后我也不能重寫,是通過block的方式實(shí)現(xiàn)的,我這邊要實(shí)現(xiàn)點(diǎn)擊就只能給這個(gè)block賦值,我之前賦值的時(shí)候是塊不對,swift的閉包和oc有區(qū)別,swift自己能識別類型,在傳值的時(shí)候就不用定義類型,然后里面塊寫完之后也不用as!轉(zhuǎn)成他的YWConversationsListDidSelectItemBlock,我之前是寫了轉(zhuǎn)換,所以里面的代碼跑不了,然后這是一個(gè),還有一個(gè)坑是,阿里的界面都是基于uinavigationcontroller進(jìn)行跳轉(zhuǎn)的,我之前是這么跳轉(zhuǎn)的,然后就開始崩潰,說我的一個(gè)array里面的值是nil,我在想哪里有array?

  SPKitExample.sharedInstance().exampleOpenConversationViewController(with: aConversation, from: nil)

然后我后面看控制器的崩潰代碼里面說了一個(gè)導(dǎo)航欄控制器的那個(gè)array里面沒東西,所以跳轉(zhuǎn)的時(shí)候他就找不到東西,后面我就機(jī)制的自己定義了一個(gè)導(dǎo)航欄控制器,然后在那個(gè)控制器里面添加會話列表界面,然后跳轉(zhuǎn)的時(shí)候后面的from就寫成self了,然后就解決了困惑我兩天的東西,基本就這些吧,demo寫的太粗糙就不上傳了,有什么問題的話聯(lián)系我就可以了,我們一起填坑

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 15,085評論 4 61
  • “也許你踽踽獨(dú)行無枝可依/也許天地?zé)o光風(fēng)長路也遠(yuǎn)/也許生死枯榮盛衰和歡興/我不等風(fēng)等你” part0 笨笨和呆呆去...
    景甜醬閱讀 480評論 0 4
  • 至從開始體驗(yàn)極簡一天,最近每周都安排一天讓自己空著手去上班。在這個(gè)過程中也一直想著如何才能持續(xù)輕松上班,又不給工作...
    袁麟翥閱讀 487評論 0 1
  • 這一陣子經(jīng)常下雨,明明是秋天,卻一點(diǎn)都不天高氣爽??諝庖?yàn)橛晁兊酶忧謇洌焖坪蹩煲獊砹恕? 摩魯佳正...
    神寵閱讀 375評論 0 0
  • ——聽同名歌曲《狐荼》有感而發(fā) 荒原中星星之火燃起,聚于一處,火球驟現(xiàn)。濃黑、墨綠化為火紅;焦炭...
    魚樹_閱讀 660評論 0 1

友情鏈接更多精彩內(nèi)容