我尝试在我的Next.js应用程序中添加Facebook客户聊天,但它不工作。我找不到我的代码有任何问题。
1.如何在Next.js应用中添加Facebook客户聊天?
1.我的代码有什么错误吗?
1.有更好的实现来解决这个问题吗?
这是我的代码。
_文档. js
import Document, { Html, Head, Main, NextScript } from "next/document";
import React from "react";
import { getLangParam } from "../utils";
export default class MyDocument extends Document {
render() {
return (
<Html >
<Head />
<noscript
dangerouslySetInnerHTML={{
__html: `<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-MPQD53D"
height="0" width="0" style="display:none;visibility:hidden"></iframe>`,
}}
<body>
<Main />
<NextScript />
</body>
<div id="fb-root"></div>
<script
dangerouslySetInnerHTML={{
__html: `
window.fbAsyncInit = function() {
FB.init({
xfbml : true,
version : 'v10.0'
});
};
(function(d, s, id) {
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) return;
js = d.createElement(s); js.id = id;
js.src = 'https://connect.facebook.net/en_US/sdk/xfbml.customerchat.js';
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
`,
}}
/>
<div className="fb-customerchat"
attribution="biz_inbox"
page_id="1043670075778655">
</div>
</Html>
);
}
}
5条答案
按热度按时间pbpqsu0x1#
我的解决方案:
44u64gxh2#
∮我的解决方案∮
嵌入FB聊天插件到React(特别是Next.js)需要一些调整。
使用下面的
Facebook1
组件:你可以在https://github.com/nghiaht/examples/tree/develop/with-fb查看我的完整例子,谢谢你鼓励我写下来,因为有时我会在项目中遇到他。
∮我最后的笔记∮
试着把功能放进组件(
Facebook1
...),然后把它们导入需要的地方。放入_document.js
会让那些东西在你的应用中全局出现(这很伤:D)。mum43rcc3#
问得好。我一直在寻找一个解决方案,并找到了一个似乎适合我的。我在
script
标签中使用了dangerouslySetInnerHTML
。我将script标签放在body中的**下面,**是FB在body标签中提供的div元素。当我将script标签放在__documents.js页面中更高的位置时,它没有加载信使。它看起来像这样。我相信有办法检测你在哪个页面上,这样信使就不会出现在所有页面上。
我将脚本放在
<Head/>
标记之外unhi4e5o4#
在布局组件中使用它
就是这样。
资源:
https://www.npmjs.com/package/react-messenger-customer-chat
5lhxktic5#
我意识到我在_document.tsx中插入了我的脚本,它应该在_app. tsx中。它也应该在Head组件之外。(Next 11 and adding Script tags not working. No scripts are rendered)对我有效的是..
我创建了一个这样的实用程序..
然后将其插入到_app.tsx..**“next/head”**外部,如下所示...