Dokumen OpenIM • Server OpenIM • openim-sdk-ios • openim-sdk-core
OpenIM iOS Demo adalah sekumpulan komponen UI yang diimplementasikan berdasarkan Open-IM SDK, yang mencakup fungsi seperti percakapan, obrolan, rantai hubungan, grup, dll. Berdasarkan komponen UI, Anda dapat dengan cepat membangun logika bisnis Anda sendiri.
Persyaratan lingkungan pengembangan
Xcode 15 ke atas
Target penerapan minimum adalah iOS 13.0.
Klon Git:
https :/ / github . com / OpenIMSDK / Open - IM - iOS - Demo . git
Jalankan perintah berikut di terminal untuk menginstal perpustakaan dependen.
cd Open - IM - iOS - Demo / Example
pod install
Jika instalasi gagal, jalankan perintah berikut untuk memperbarui daftar gudang CocoaPods lokal.
pod repo update
Kompilasi dan jalankan: Masuk ke folder Open-IM-iOS-Demo/Example, buka OpenIMSDKUIKit.xcworkspace untuk mengkompilasi dan menjalankan.
Rasakan server Anda sendiri 6.1 Jika Anda memiliki Deploy OpenIM Server sendiri, Anda dapat memodifikasi server di file AppDelegate.swift Alamatnya adalah alamat server yang Anda buat sendiri;
6.2 Setelah mengunduh aplikasi, klik "Selamat datang di OpenIM" pada halaman [Login] untuk masuk ke halaman pengaturan, membuat pengaturan yang relevan, simpan dan mulai ulang untuk digunakan.
Mulai pengembangan! ?
Perangkat lunak obrolan yang umum digunakan terdiri dari beberapa antarmuka dasar seperti daftar sesi, jendela obrolan, daftar teman, panggilan audio dan video, dll. Lihat langkah-langkah berikut, Anda hanya memerlukan beberapa baris kode untuk dengan cepat membangun antarmuka UI ini di proyek.
Langkah 1: Ubah alamat IP server Anda sendiri:
AppDelegate.swift
// Default IP address to be used
let defaultHost = "" ; // Replace with the desired host
Langkah 2: Masuk
- Masuk ke server bisnis Anda sendiri untuk mendapatkan ID pengguna dan token;
- Gunakan 1. untuk mendapatkan userID dan token untuk masuk ke server IM;
// 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 )
}
}
Langkah 3: Buat daftar percakapan, jendela obrolan, antarmuka buku alamat, pengaturan:
// session list
let chat = ChatListViewController ( )
// chat window
let message = MessageListViewController ( )
// address book
let contactVC = ContactsViewController ( )
// set up
let mineNav = MineViewController ( )
Kami ingin siapa pun terlibat dalam komunitas kami dan menyumbangkan kode, kami menawarkan hadiah dan penghargaan, dan kami menyambut Anda untuk bergabung dengan kami setiap Kamis malam.
Konferensi kami ada di OpenIM Slack, lalu Anda dapat mencari pipeline Open-IM-Server untuk bergabung
Kami mencatat setiap pertemuan dua mingguan dalam diskusi GitHub, catatan sejarah pertemuan kami, serta tayangan ulang pertemuan tersebut tersedia di Google Docs?.
Lihat halaman studi kasus pengguna kami untuk daftar pengguna proyek. Jangan ragu untuk meninggalkan komentar dan membagikan kasus penggunaan Anda.
Repositori ini dilisensikan di bawah GNU Affero General Public License versi 3 (AGPL-3.0) dan tunduk pada ketentuan tambahan berikut. Silakan lihat di sini untuk detailnya.