MoEngage на NextJS

У меня проблема с внедрением MoEngage в Next.js.

Вот документация MoEngage для Reactjs, MoEngage ReactJS

Но проблема в том, что я не могу найти index.html в NextJS. Я уже пытаюсь положить в _documents.tsx, под Head component.

      import {Html, Head} from 'next/document'
<Html>
   <Head>
     <script
        dangerouslySetInnerHTML={{
          __html: `
          (function(i, s, o, g, r, a, m, n) {
    i.moengage_object = r;
    t = {};
    q = function(f) {
      return function() {
        (i.moengage_q = i.moengage_q || []).push({ f: f, a: arguments });
      };
    };
    (f = [
      'track_event',
      'add_user_attribute',
      'add_first_name',
      'add_last_name',
      'add_email',
      'add_mobile',
      'add_user_name',
      'add_gender',
      'add_birthday',
      'destroy_session',
      'add_unique_user_id',
      'moe_events',
      'call_web_push',
      'track',
      'location_type_attribute',
    ]),
      (h = { onsite: ['getData'] });
    for (k in f) {
      t[f[k]] = q(f[k]);
    }
    a = s.createElement(o);
    m = s.getElementsByTagName(o)[0];
    a.async = 1;
    a.src = g;
    m.parentNode.insertBefore(a, m);
    i.moe =
      i.moe ||
      function() {
        n = arguments[0];
        return t;
      };
    a.onload = function() {
      if (n) {
        i[r] = moe(n);
      }
    };
  })(
    window,
    document,
    'script',
    'https://cdn.moengage.com/webpush/moe_webSdk.min.latest.js',
    'Moengage'
  );

  Moengage = moe({
    app_id: ${moeID},
    debug_logs: ${moeDebug},
    swPath: '/service-worker.js',
  });
      `,
        }}
      />
   </Head>
</Html>

Это не работает, кто-нибудь знает, как реализовать этот тег скрипта на NextJS? Я пробую этот метод так же, как добавляю Google Analytics, он работает для Google Analytics, но не для MoEngage.

Спасибо.

1 ответ

Если вы не нашли index.js, я предполагаю, что в вашей кодовой базе должен быть файл _app.js. _app.js Позволяет нам писать код, который повлияет на ВСЕ наши страницы, так что это идеальное место для нас, чтобы создать компоненты скрипта.

Первым делом!!

Если вы используете next.js 11/12, <Script>тег из 'next/script' должен быть помещен в ваш _app.js внутри returnблок А также над <Head>ярлык. Что-то вроде этого,

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