OpenIM 文件 • OpenIM 伺服器 • openim-sdk-ios • openim-sdk-core
OpenIM iOS Demo是一套基於Open-IM SDK實現的UI元件,包含對話、聊天、關係鏈、群組等功能。
開發環境要求
Xcode 15 以上版本
最低部署目標是 iOS 13.0。
git 克隆:
https :/ / github . com / OpenIMSDK / Open - IM - iOS - Demo . git
在終端機執行以下命令安裝依賴庫。
cd Open - IM - iOS - Demo / Example
pod install
如果安裝失敗,執行下列指令更新本機CocoaPods倉庫清單。
pod repo update
編譯運行:進入Open-IM-iOS-Demo/Example資料夾,開啟OpenIMSDKUIKit.xcworkspace進行編譯運行。
體驗自己的伺服器 6.1 如果您自己部署了 OpenIM Server,可以修改 AppDelegate.swift 檔案中的伺服器位址為自己搭建的伺服器位址;
6.2 下載App後,在【登入】頁面點擊「歡迎使用OpenIM」進入設定頁面,進行相關設置,儲存後重新啟動即可使用。
開始開發! ?
Commonly used chat software is composed of several basic interfaces such as session list, chat window, friend list, audio and video calls, etc. Refer to the following steps, you only need a few lines of code to quickly build these UI interfaces in the專案.
第一步:修改自己的伺服器IP位址:
AppDelegate.swift
// Default IP address to be used
let defaultHost = "" ; // Replace with the desired host
步驟2:登入
- 登入自己的業務伺服器取得userID和token;
- 使用1.取得登入IM伺服器的userID和token;
// 1 : Log in to your own business server to obtain userID and token ;
static func loginDemo ( phone : String , pwd : String , completionHandler : @escaping ( ( _ errMsg : String? ) -> Void ) ) {
let body = JsonTool . toJson ( fromObject : Request . init ( phoneNumber : phone , pwd : pwd ) ) . data ( using : . utf8 )
var req = try! URLRequest . init ( url : "your login api" , method : . post )
req . httpBody = body
Alamofire . request ( req ) . responseString { ( response : DataResponse < String > ) in
switch response . result {
case . success ( let result ) :
if let res = JsonTool . fromJson ( result , toClass : Response . self ) {
if res . errCode == 0 {
completionHandler ( nil )
// log in to the IM server
loginIM ( uid : res . data . userID , token : res . data . token , completionHandler : completionHandler )
} else {
completionHandler ( res . errMsg )
}
} else {
let err = JsonTool . fromJson ( result , toClass : DemoError . self )
completionHandler ( err? . errMsg )
}
case . failure ( let err ) :
completionHandler ( err . localizedDescription )
}
}
}
static func loginIM ( uid : String , token : String , completionHandler : @escaping ( ( _ errMsg : String? ) -> Void ) ) {
IMController . shared . login ( uid : uid , token : token ) { resp in
print ( "login onSuccess ( String(describing: resp))" )
completionHandler ( nil )
} onFail : { ( code : Int , msg : String? ) in
let reason = "login onFail: code ( code), reason ( String(describing: msg))"
completionHandler ( reason )
}
}
第三步:建立對話清單、聊天視窗、通訊錄介面、設定:
// session list
let chat = ChatListViewController ( )
// chat window
let message = MessageListViewController ( )
// address book
let contactVC = ContactsViewController ( )
// set up
let mineNav = MineViewController ( )
我們希望任何人都參與我們的社區並貢獻代碼,我們提供禮物和獎勵,我們歡迎您每週四晚上加入我們。
我們的會議在 OpenIM Slack 中,那麼您可以搜尋 Open-IM-Server pipeline 加入
我們在 GitHub 討論中記錄每兩週一次的會議記錄,我們的歷史會議記錄以及會議重播可在 Google Docs 上找到。
查看我們的使用者案例研究頁面,以取得專案使用者清單。請隨時發表評論並分享您的用例。
此儲存庫根據 GNU Affero 通用公共授權版本 3 (AGPL-3.0) 獲得許可,並受以下附加條款的約束。詳情請參閱此。