Documentos OpenIM • Servidor OpenIM • openim-sdk-ios • openim-sdk-core
OpenIM iOS Demo é um conjunto de componentes de UI implementados com base no Open-IM SDK, que inclui funções como conversação, chat, cadeia de relacionamento, grupo, etc.
Requisitos do ambiente de desenvolvimento
Xcode 15 e superior
O destino mínimo de implantação é iOS 13.0.
Clone Git:
https :/ / github . com / OpenIMSDK / Open - IM - iOS - Demo . git
Execute o seguinte comando no terminal para instalar a biblioteca dependente.
cd Open - IM - iOS - Demo / Example
pod install
Se a instalação falhar, execute o seguinte comando para atualizar a lista local do warehouse CocoaPods.
pod repo update
Compilar e executar: Entre na pasta Open-IM-iOS-Demo/Example, abra OpenIMSDKUIKit.xcworkspace para compilar e executar.
Experimente seu próprio servidor 6.1 Se você mesmo tiver o Deploy OpenIM Server, poderá modificar o servidor no arquivo AppDelegate.swift O endereço é o endereço do servidor criado por você;
6.2 Após baixar o aplicativo, clique em "Bem-vindo ao OpenIM" na página [Login] para entrar na página de configurações, fazer as configurações relevantes, salvar e reiniciar para usar.
Comece o desenvolvimento! ?
O software de bate-papo comumente usado é composto de várias interfaces básicas, como lista de sessões, janela de bate-papo, lista de amigos, chamadas de áudio e vídeo, etc. Consulte as etapas a seguir, você só precisa de algumas linhas de código para construir rapidamente essas interfaces de IU no projeto.
Etapa 1: altere o endereço IP do seu próprio servidor:
AppDelegate.swift
// Default IP address to be used
let defaultHost = "" ; // Replace with the desired host
Etapa 2: Faça login
- Faça login em seu próprio servidor comercial para obter ID de usuário e token;
- Use 1. para obter o ID do usuário e o token para fazer login no servidor de mensagens instantâneas;
// 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 )
}
}
Etapa 3: Construa lista de conversas, janela de bate-papo, interface do catálogo de endereços, configurações:
// session list
let chat = ChatListViewController ( )
// chat window
let message = MessageListViewController ( )
// address book
let contactVC = ContactsViewController ( )
// set up
let mineNav = MineViewController ( )
Queremos que todos se envolvam em nossa comunidade e contribuam com o código, oferecemos presentes e recompensas e convidamos você a se juntar a nós todas as quintas-feiras à noite.
Nossa conferência está no OpenIM Slack, então você pode pesquisar o pipeline Open-IM-Server para participar
Tomamos notas de cada reunião quinzenal nas discussões do GitHub. Nossas notas históricas de reuniões, bem como replays das reuniões estão disponíveis no Google Docs?.
Confira nossa página de estudos de caso de usuários para obter uma lista dos usuários do projeto. Não hesite em deixar um comentário e compartilhar seu caso de uso.
Este repositório está licenciado sob a Licença Pública Geral GNU Affero versão 3 (AGPL-3.0) e está sujeito aos seguintes termos adicionais. Consulte aqui para obter detalhes.