我使用 Microsoft Botframework 开发了一个聊天机器人。这个特定的 React 项目位于一个存储库中。还有另一个使用 Angular 开发的页面存储库,它需要有一个浮动按钮或小部件来打开该聊天机器人。我该如何实现这个目标? This 是一个与我想要实现的示例类似的示例,但它在一个存储库中具有两个代码。
我假设“不同的存储库”是指您想要分别托管父页面和聊天机器人 UI。
您可以使用 iframe 将聊天机器人 UI 嵌入到现有页面中。这样,您的聊天机器人 UI 就可以成为一个独立的小部件,可以与托管 iframe 的父页面进行交互。
您的 iframe 代码将如下所示:
<iframe src="<url for your chatbot UI>" width="480" height="540" frameborder="0"></iframe>
创建独立组件:确保您的 React 聊天机器人封装在独立组件中。该组件应包含聊天机器人的所有必要逻辑和 UI 元素。 准备嵌入:确保您的 React 聊天机器人组件设计为易于嵌入。这可能涉及确保它具有灵活的样式选项、不依赖全局状态并且可以轻松初始化。 构建主机页面:您需要在要嵌入聊天机器人的其他网站上有一个页面。此页面应该有一个占位符或容器,将在其中加载聊天机器人。 部署您的聊天机器人组件:将您的 React 聊天机器人组件部署到服务器或 CDN(内容交付网络),以便可以从任何网站访问它。您可以使用 Netlify、Vercel 或 GitHub Pages 等工具来实现此目的。 嵌入聊天机器人组件:在主机页面的 HTML 中,包含必要的脚本标记或导入语句以加载 React 聊天机器人组件。然后,将组件添加到主页 DOM 结构中的所需位置。 以下是如何将 React 聊天机器人组件嵌入 HTML 页面的基本示例:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Embedded Chatbot</title>
</head>
<body>
<div id="chatbot-container"></div>
<script src="path-to-your-chatbot-component.js"></script>
<script>
// Assuming your React chatbot component is exported as `Chatbot`
ReactDOM.render(<Chatbot />, document.getElementById('chatbot-container'));
</script>
</body>
</html>
将“path-to-your-chatbot-component.js”替换为已部署的聊天机器人组件 JavaScript 文件的实际路径。
确保您的 React 聊天机器人组件能够处理动态调整大小,因为主页可能具有不同的布局配置。
请记住彻底测试集成,以确保它在不同的浏览器和设备上按预期工作。