Exemplo n.º 1
0
        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);
        }