Как я могу открыть окно обратной связи с пользователем в моем симуляторе с помощью @sentry/react-native

Мне нужно открыть окно обратной связи с пользователем в моем симуляторе, используя @sentry/react-native.

Я устал от добавления Sentry.showReportDialog() в свой App.js.

Но это не сработало, и я получил неопределенную ошибку.

Может ли кто-нибудь предложить, как лучше всего открыть окно обратной связи с пользователем в @ sentry / react-native?

2 ответа

Я думаю, что окна обратной связи предназначены только для браузеров, как вы можете прочитать в этой ветке https://github.com/getsentry/sentry-react-native/issues/500, как вариант, вы можете поместить его через API обратной связи и создать свой собственный глобальный модальный / предупреждение

Sentry.init({
    dsn: 'key',
    beforeSend(event, hint) {
      // Check if it is an exception, and if so, show the report dialog
      if (event.exception) {
        Sentry.showReportDialog({ eventId: event.event_id });
      }
      return event;
    }
});

Пример обратной связи с часовым api

let endpoint = 'https://sentry.io/api/0/projects/{your_organization_slug}/{your_project_slug}/user-feedback/'

let params = {
  event_id: ...,
  name: 'John Smith',
  email: 'johnsmith@example.com',
  comments: 'This app sucks'
}

try {
  await fetch(endpoint, {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json'
    },
    body: JSON.stringify(params)
  })
  console.log('Feedback submitted!')
} catch (error) {
  console.error(error)
}

Sentry.showReportDialog()существует только в браузере SDK

Для отправки отзывов пользователей в React Native SDK используйтеSentry.captureUserFeedback(userFeedback)подробности в Sentry docs.

      import * as Sentry from '@sentry/react-native';
import { UserFeedback } from '@sentry/react-native';

const sentryId = Sentry.captureMessage('My Message');
// OR: const sentryId = Sentry.lastEventId();

const userFeedback: UserFeedback = {
  event_id: sentryId,
  name: 'John Doe',
  email: 'john@doe.com',
  comments: 'Hello World!',
};

Sentry.captureUserFeedback(userFeedback);

Чтобы узнать, как создать всплывающую форму обратной связи с пользователем, проверьте пример реализации приложения .

Другие вопросы по тегам