@ungradable

Проблема с vk sdk api, методом app.SendRequest. Как правильно настроить работу данного запроса?

Доброго времени суток.
Использую vk api sdk в Xamarin.Android. Создаю запрос вот таким образом:

var token = VKHelper.GetVkUserToken(App.Data.Setting.List);
var iparams = new Dictionary<string, Java.Lang.Object>();
iparams.Add(VKApiConst.UserId, VKBuffer.Friend.Id);
iparams.Add("type", "invite");
iparams.Add("access_token", token);
v = new VKRequest("apps.sendRequest", new VKParameters(iparams));


по нажатию на кнопку вызываю ExecuteWithListener:

v.ExecuteWithListener(new ReqvList(new Action(o =>
{
if (o.IsComplete)
   {
      try
      {
           showCustomAlert(Resource.Drawable.checkmark, GetString(Resource.String.SentInvite), Android.Graphics.Color.Argb(100, 0, 0, 200));
      }
      catch { }
   }
   else
   {
       try
       {
           showCustomAlert(Resource.Drawable.ic_post, GetString(Resource.String.NotSentInvite) + "\n" + GetString(o.MessageId), Android.Graphics.Color.Argb(100, 200, 0, 0));
       }
       catch { }
   }
})));


В итоге: если нажму на кнопку пригласить пользователя в игру, то появится диалоговое окно "вконтакте" с предложением пригласить (там можно согласиться, можно отменить). Если нажму "пригласить" пользователя, который в настройках запретил приглашать себя в игры, то сработает нормально, это строки:

....
else
{
try
{
showCustomAlert(Resource.Drawable.ic_post, GetString(Resource.String.NotSentInvite) + "\n" + GetString(o.MessageId), Android.Graphics.Color.Argb(100, 200, 0, 0));
}
catch { }
}

....

Но если же пользователь "разрешает" приглашать его, то "лисенер" не срабатывает и приложение зависает. В приложении можно нажать кнопку "назад", приложение "отвиснет" и, если снова приглашу, то уже все сработает. т.е. срабатывает лисенер в случае статуса complete только со второго раза, это строки

...
if (o.IsComplete)
{
try
{
showCustomAlert(Resource.Drawable.checkmark, GetString(Resource.String.SentInvite), Android.Graphics.Color.Argb(100, 0, 0, 200));
}
catch { }
}

...

Везде написано, что нужно делать именно так, но данное решение не работает.
  • Вопрос задан
  • 813 просмотров
Пригласить эксперта
Ответы на вопрос 1
@yomanx
Друг, а как вообще принять запросы отправленные через apps.sendRequest?

например отправил я подарок другу, как его друг то получит? какой метод?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы