3

我需要使用@sentry/react-native 在我的模拟器中打开用户反馈窗口。

我已经厌倦了在我的 App.js 中添加 Sentry.showReportDialog()。

但它不起作用,我得到了一个未定义的错误。

谁能建议在@sentry/react-native 中打开用户反馈窗口的最佳做法是什么?

4

1 回答 1

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;
    }
});

sentry 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)
}
于 2020-01-23T07:24:32.613 回答