เอกสาร OpenIM • เซิร์ฟเวอร์ OpenIM • openim-sdk-ios • openim-sdk-core
OpenIM iOS Demo คือชุดของส่วนประกอบ UI ที่ใช้งานโดยอิงจาก Open-IM SDK ซึ่งรวมถึงฟังก์ชันต่างๆ เช่น การสนทนา การแชท สายโซ่ความสัมพันธ์ กลุ่ม ฯลฯ คุณสามารถสร้างตรรกะทางธุรกิจของคุณเองได้อย่างรวดเร็ว โดยอิงตามส่วนประกอบ UI
ข้อกำหนดด้านสภาพแวดล้อมการพัฒนา
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 หากคุณมี Deploy OpenIM Server ด้วยตัวเอง คุณสามารถแก้ไขเซิร์ฟเวอร์ในไฟล์ 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. เพื่อรับ ID ผู้ใช้และโทเค็นเพื่อเข้าสู่ระบบเซิร์ฟเวอร์ 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 )
}
}
ขั้นตอนที่ 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) และอยู่ภายใต้ข้อกำหนดเพิ่มเติมต่อไปนี้ โปรดดูที่นี่สำหรับรายละเอียด