OpenIM ドキュメント • OpenIM サーバー • openim-sdk-ios • openim-sdk-core
OpenIM iOS デモは、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 ドキュメントで入手できます。
プロジェクト ユーザーのリストについては、ユーザー事例ページをご覧ください。遠慮せずにコメントを残して、使用例を共有してください。
このリポジトリは、GNU Affero General Public License バージョン 3 (AGPL-3.0) に基づいてライセンスされており、次の追加条項が適用されます。詳細はこちらをご参照ください。