Как зарегистрировать обработчик событий для TrackError в AppCenter SDK для C#? - PullRequest
2 голосов
/ 06 января 2020

Я регистрирую обработчики событий перед вызовом TrackError, но они никогда не вызываются. Да, события произошли, потому что ошибки обнаружены в AppCenter.

//On loading app
Crashes.SentErrorReport += (sender, args) => { System.Diagnostics.Process.GetCurrentProcess().Kill(); };
Crashes.FailedToSendErrorReport += (sender, args) => { System.Diagnostics.Process.GetCurrentProcess().Kill(); };

AppCenter.Start("{App secret here}" +
       "android={App secret here}" +
       "ios={App secret here}",
       typeof(Analytics), typeof(Crashes));

//Elsewhere in the app
Crashes.TrackError(exception, comments, attachments);

Следуя этой документации: https://docs.microsoft.com/en-us/appcenter/sdk/crashes/xamarin

Ответы [ 2 ]

1 голос
/ 07 января 2020

Эта функция не поддерживается для обработанных исключений, таких как ошибки в App Center (о которых разработчик сообщил, используя Crashes.trackError вручную).

События срабатывают только для сбоев (необработанные исключения, вызывающие приложение Выход). Также эти события вызываются после перезапуска сбойного процесса.

0 голосов
/ 06 января 2020

Они никогда не вызываются, потому что два обработчика событий больше не находятся в области действия Page / Fragment / UIViewController. (Страница в Xamarin.Forms, Фрагмент в Xamarin. Android, UIViewController в Xamarin. iOS)

Вам потребуется переназначить обработчики событий на новой странице. Возможно, определите его в BasePage, от которого наследуются все другие страницы.

...