Documentos OpenIM • Servidor OpenIM • openim-sdk-ios • openim-sdk-core
OpenIM iOS Demo es un conjunto de componentes de interfaz de usuario implementados en función del SDK de Open-IM, que incluye funciones como conversación, chat, cadena de relaciones, grupo, etc. Según los componentes de la interfaz de usuario, puede crear rápidamente su propia lógica empresarial.
Requisitos del entorno de desarrollo
Xcode 15 y superior
El objetivo mínimo de implementación es iOS 13.0.
Clon de Git:
https :/ / github . com / OpenIMSDK / Open - IM - iOS - Demo . git
Ejecute el siguiente comando en la terminal para instalar la biblioteca dependiente.
cd Open - IM - iOS - Demo / Example
pod install
Si la instalación falla, ejecute el siguiente comando para actualizar la lista del almacén local de CocoaPods.
pod repo update
Compile y ejecute: ingrese a la carpeta Open-IM-iOS-Demo/Example, abra OpenIMSDKUIKit.xcworkspace para compilar y ejecutar.
Experimente su propio servidor 6.1 Si ha implementado OpenIM Server usted mismo, puede modificar el servidor en el archivo AppDelegate.swift La dirección es la dirección del servidor creada por usted mismo;
6.2 Después de descargar la aplicación, haga clic en "Bienvenido a OpenIM" en la página [Iniciar sesión] para ingresar a la página de configuración, realizar las configuraciones relevantes, guardar y reiniciar para usar.
¡Comienza el desarrollo! ?
El software de chat de uso común se compone de varias interfaces básicas, como lista de sesiones, ventana de chat, lista de amigos, llamadas de audio y video, etc. Consulte los siguientes pasos; solo necesita unas pocas líneas de código para crear rápidamente estas interfaces de interfaz de usuario en el proyecto.
Paso 1: cambie la dirección IP de su propio servidor:
AppDelegate.swift
// Default IP address to be used
let defaultHost = "" ; // Replace with the desired host
Paso 2: Iniciar sesión
- Inicie sesión en su propio servidor empresarial para obtener el ID de usuario y el token;
- Utilice 1. para obtener ID de usuario y token para iniciar sesión en el servidor de mensajería instantánea;
// 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 )
}
}
Paso 3: Construya la lista de conversaciones, la ventana de chat, la interfaz de la libreta de direcciones y la configuración:
// session list
let chat = ChatListViewController ( )
// chat window
let message = MessageListViewController ( )
// address book
let contactVC = ContactsViewController ( )
// set up
let mineNav = MineViewController ( )
Queremos que cualquiera se involucre en nuestra comunidad y contribuya con el código, ofrecemos obsequios y recompensas, y lo invitamos a unirse a nosotros todos los jueves por la noche.
Nuestra conferencia es en OpenIM Slack, luego puede buscar en el canal Open-IM-Server para unirse
Tomamos notas de cada reunión quincenal en las discusiones de GitHub. Nuestras notas históricas de las reuniones, así como las repeticiones de las reuniones, están disponibles en Google Docs.
Consulte nuestra página de estudios de casos de usuarios para obtener una lista de los usuarios del proyecto. No dude en dejar un comentario y compartir su caso de uso.
Este repositorio tiene la licencia pública general GNU Affero versión 3 (AGPL-3.0) y está sujeto a los siguientes términos adicionales. Consulte aquí para obtener más detalles.