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>
ярлык. Что-то вроде этого,