private async Task Login() { var account = AccountText.StringValue; AgoraRtm.Current = account; var token = await AgoraTokenService.GetRtmToken(account); AgoraRtm.RtmKit.LoginByToken(token, account, (status) => { if (status == Xamarin.Agora.AgoraRtmLoginErrorCode.Ok) { InvokeOnMainThread(() => { AgoraRtm.OneToOneMessageType = OfflineSwitch.State == NSCellStateValue.On ? OneToOneMessageType.Offline : OneToOneMessageType.Normal; //getting offline messages var rtmDelegate = new RtmDelegate(); rtmDelegate.AppendMessage += (user, message) => AgoraRtm.AddOfflineMessage(message, user); AgoraRtm.UpdateKit(rtmDelegate); AgoraRtm.Status = LoginStatus.Online; PerformSegue("mainToTab", this); }); } }); }
public override void ViewDidLoad() { base.ViewDidLoad(); var dataSource = new TableSource(_messages); Table.DataSource = dataSource; Table.Delegate = new TableDelegate(dataSource); LoadOfflineMessages(); _rtmDelegate = new RtmDelegate(); _rtmDelegate.AppendMessage += AppendMsg; AgoraRtm.UpdateKit(_rtmDelegate); }