مستندات OpenIM • خادم OpenIM • openim-sdk-ios • openim-sdk-core
OpenIM iOS Demo عبارة عن مجموعة من مكونات واجهة المستخدم التي تم تنفيذها استنادًا إلى Open-IM SDK، والتي تتضمن وظائف مثل المحادثة والدردشة وسلسلة العلاقات والمجموعة وما إلى ذلك. واستنادًا إلى مكونات واجهة المستخدم، يمكنك إنشاء منطق عملك الخاص بسرعة.
متطلبات بيئة التطوير
اكس كود 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" في صفحة [تسجيل الدخول] للدخول إلى صفحة الإعداد، وإجراء الإعدادات ذات الصلة، ثم الحفظ وإعادة التشغيل للاستخدام.
ابدأ التطوير! ؟
تتكون برامج الدردشة شائعة الاستخدام من عدة واجهات أساسية مثل قائمة الجلسات ونافذة الدردشة وقائمة الأصدقاء ومكالمات الصوت والفيديو وما إلى ذلك. راجع الخطوات التالية، فأنت تحتاج فقط إلى بضعة أسطر من التعليمات البرمجية لإنشاء واجهات واجهة المستخدم هذه بسرعة في مشروع.
الخطوة 1: تغيير عنوان IP الخاص بالخادم الخاص بك:
AppDelegate.swift
// Default IP address to be used
let defaultHost = "" ; // Replace with the desired host
الخطوة 2: تسجيل الدخول
- قم بتسجيل الدخول إلى خادم الأعمال الخاص بك للحصول على معرف المستخدم والرمز المميز؛
- استخدم 1. للحصول على معرف المستخدم والرمز المميز لتسجيل الدخول إلى خادم المراسلة الفورية؛
// 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 العامة الإصدار 3 (AGPL-3.0) ويخضع للشروط الإضافية التالية. يرجى الرجوع إلى هنا للحصول على التفاصيل.