Skip to main content

ios

SDK татаж авах

  • SDK-г ашигласан жишээ код: Доор байрлах Github repository-н qrtm_ios_demo/Controllers/QRTMChatViewController.swift

Github --> https://github.com/platformwolo/PlatformRTM-iOS

Шаардлагатай сангууд суулгах

1. QRTMSdk folder-г Libs folder-т байршуулах
2. Podfile дотор доорх сангуудыг нэмэх
3. Pod install

Зарим сангийн шинэ хувилбарыг (version) дэмжихгүй байх магадлалтай тул доорх хувилбарын дагуу суулгана уу

podfile-д нэмэх:


pod 'Starscream', '3.0.6'
pod 'MessageKit'
pod 'SwiftyJSON'
pod 'Kingfisher', '~> 7.0'
pod 'QRTMSdk', :path => './Libs/QRTMSdk'
post_install do |installer|
installer.generated_projects.each do |proj|
proj.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '13.0'
end
end
end
end

Sdk-г үүсгэх

Анхаарах зүйлс
1. QRTMSdk framework-г sdk ашиглах код дотроо import хийн оруулах ( Sdk-г ашиглах Activity дотор )

  import QRTMSdk
2. SDK-г ашиглаж буй class-г RTMListener class-р extension хийх
  • listener-н method-уудыг override хийж ашиглана.

Жишээ нь:


extension QRTMChatViewController: RTMListener {
func rtmKit(_ rtm: RTM, didReceiveMessage message: String, fromChannel: String, fromPeer: String) {
// ...
}
func rtmKit(_ rtm: RTM, userId: String, presentEvent: QRtmPresenceEvent){
// ...
}
}
3. RTM class-н шинэ объект үүсгэнэ
  • appId: RTC-dash-с үүсгэсэн appId

  • userId: Rtm үүсгэж байгаа хэрэглэгчийн Id

  • rtmConfig: RTMConfig төрлийн объект ( Одоогоор serverUrl, token 2-с бусад хувьсагч ашиглагдахгүй байгаа тул дурын төрөл харгалзах утгыг дамжуулаарай )

  • listener: self утгатай байна ( SDK-г ашиглаж буй class-г RTMListener class-р extension хийсэн байх )


  var rtmClient: RTM = RTM( appId: "appId", userId: "userId", rtmConfig: RTMConfig(serverUrl: "..", token: ".."), listener: self);
public struct RTMConfig {
public init(
serverUrl: String? = nil, // Rtm server-н хаяг
token: String? = nil, // Rtm server рүү нэвтрэх token. Back-end дээр үүсгэнэ. (https://www.npmjs.com/package/rtc-token)
encryptionMode: String? = nil, // мессеж нууцлах ( "NONE", "AES_128_GCM", "AES_256_GCM" )
cipherKey: String? = nil, // мессеж нууцлахад ашиглах түлхүүр
salt: [UInt8]? = nil, // new Uint8Array(6), мессеж нууцлалт оруулж байгаа үед заавал оруулах
useStringUserId: Bool? = nil, // true, Хэрэглэгчийн ID string үед true утгатай байна
presenceTimeout: Int? = nil, // 1000,
logUpload: Bool? = nil, // false,
logLevel: String? = nil, // "verbose",
cloudProxy: Bool? = nil // false
)
}

Нэвтрэх

rtmClient.login()

  • QRTMSdk.LoginResponse: Амжилттай үед буцаах объект

Sdk-с гарах

1. rtmClient.logout()

  • LogoutResponse: Амжилттай үед буцаах объект

Channel руу орох

rtmClient.subscribe(channelName: String)
  • channelName: String - Channel-н нэр

  • SubscribeResponse: Амжилттай үед буцаах объект

Channel-с гарах

rtmClient.unsubscribe(channelName: String)
  • channelName: String - Channel-н нэр

  • UnsubscribeResponse: Амжилттай үед буцаах объект

Channel руу мессеж явуулах

rtmClient.publish(channelName: String, message: String)
  • channelName: String - Channel-н нэр

  • message: String - Илгээх мессеж

  • PublishResponse: Амжилттай үед буцаах объект

Listener

Channel-д хэрэглэгч орох, гарах үед

rtmKit(_ rtm: RTM, userId: String, presentEvent: QRtmPresenceEvent )
  • presentEvent: type, channelType, channelName, publisher зэрэг хувьсагчаас бүрдсэн объект

  • type: Хэрэглэгч орсон эсвэл гарсанг илэрхийлнэ. ( QRTMSdk.QRTMPresenceEventType.RemoteJoinChannel, QRTMSdk.QRTMPresenceEventType.RemoteLeaveChannel )

  • channelType: QRTMSdk.QRTMChannelType.Message

  • channelName: String - Channel-н нэр

  • publisher: String - Хэрэглэгчийн ID

Channel-д бусад хэрэглэгчдээс мессеж ирэх үед

rtmKit(_ rtm: RTM, didReceiveMessage message: String, fromChannel: String, fromPeer: String )
  • message: String - Хэрэглэгчийн илгээсэн мессеж

  • fromChannel: String - Channel-н нэр

  • fromPeer: String - Хэрэглэгчийн ID