OpenIM 문서 • OpenIM 서버 • openim-sdk-ios • openim-sdk-core
OpenIM iOS Demo는 Open-IM SDK를 기반으로 구현된 UI 컴포넌트 세트로, 대화, 채팅, 관계체인, 그룹 등의 기능을 포함하고 있습니다. 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 서버를 직접 배포한 경우 AppDelegate.swift 파일에서 서버를 수정할 수 있습니다. 주소는 직접 구축한 서버 주소입니다.
6.2 앱 다운로드 후 [로그인] 페이지에서 "OpenIM에 오신 것을 환영합니다"를 클릭하여 설정 페이지에 들어가 관련 설정을 한 후 저장하고 다시 시작하여 사용하세요.
개발을 시작하세요! ?
일반적으로 사용되는 채팅 소프트웨어는 세션 목록, 채팅 창, 친구 목록, 오디오 및 비디오 통화 등과 같은 여러 기본 인터페이스로 구성됩니다. 다음 단계를 참조하면 이러한 UI 인터페이스를 신속하게 구축하려면 몇 줄의 코드만 있으면 됩니다. 프로젝트.
1단계: 자신의 서버 IP 주소를 변경하세요.
AppDelegate.swift
// Default IP address to be used
let defaultHost = "" ; // Replace with the desired host
2단계: 로그인
- 사용자 ID와 토큰을 얻으려면 자신의 비즈니스 서버에 로그인하세요.
- 1. IM 서버에 로그인하기 위한 사용자 ID와 토큰을 얻으려면 다음을 사용하십시오.
// 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 Docs ?에서 볼 수 있습니다.
프로젝트 사용자 목록을 보려면 사용자 사례 연구 페이지를 확인하세요. 주저하지 말고 댓글을 남기고 사용 사례를 공유해 주세요.
이 저장소는 GNU Affero General Public License 버전 3(AGPL-3.0)에 따라 라이센스가 부여되었으며 다음 추가 조건이 적용됩니다. 자세한 내용은 여기를 참조하세요.