Документы OpenIM • Сервер OpenIM • openim-sdk-ios • openim-sdk-core
OpenIM iOS Demo — это набор компонентов пользовательского интерфейса, реализованных на основе Open-IM SDK, который включает в себя такие функции, как разговор, чат, цепочка отношений, группа и т. д. На основе компонентов пользовательского интерфейса вы можете быстро построить собственную бизнес-логику.
Требования к среде разработки
Xcode 15 и выше
Минимальная цель развертывания — iOS 13.0.
Гит-клон:
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, вы можете изменить сервер в файле AppDelegate.swift. Адрес — это адрес сервера, созданный вами;
6.2 После загрузки приложения нажмите «Добро пожаловать в OpenIM» на странице [Вход], чтобы войти на страницу настроек, выполнить соответствующие настройки, сохранить и перезапустить, чтобы использовать.
Начни разработку! ?
Обычно используемое программное обеспечение для чата состоит из нескольких основных интерфейсов, таких как список сеансов, окно чата, список друзей, аудио- и видеозвонки и т. д. Обратитесь к следующим шагам: вам понадобится всего несколько строк кода, чтобы быстро создать эти интерфейсы пользовательского интерфейса в проект.
Шаг 1. Измените IP-адрес собственного сервера:
AppDelegate.swift
// Default IP address to be used
let defaultHost = "" ; // Replace with the desired host
Шаг 2: Войти
- Войдите на свой бизнес-сервер, чтобы получить идентификатор пользователя и токен;
- Используйте 1. для получения идентификатора пользователя и токена для входа на сервер обмена мгновенными сообщениями;
// 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 )
}
}
Шаг 3. Создайте список разговоров, окно чата, интерфейс адресной книги, настройки:
// 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, чтобы присоединиться.
Мы делаем заметки каждой встречи раз в две недели в обсуждениях GitHub. Наши исторические заметки о встречах, а также повторы встреч доступны в Документах Google?
Посетите нашу страницу с примерами использования, чтобы увидеть список пользователей проекта. Не стесняйтесь оставлять комментарии и делиться своим примером использования.
Этот репозиторий распространяется под лицензией GNU Affero General Public License версии 3 (AGPL-3.0) и подчиняется следующим дополнительным условиям. Пожалуйста, обратитесь сюда для получения подробной информации.