在Vue 3项目中利用Dify Web SDK实现无缝聊天窗口嵌入的方法

秋伟小哥_7823

秋伟小哥_7823

2026-07-30

875人浏览

原创

必须使用Dify官方Web SDK注入原生DOM节点:获取最新token和baseUrl,通过main.ts或App.vue中onMounted动态加载embed.min.js脚本,配置difyChatbotConfig与difyUserContext,并监听resize更新位置。

☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

在vue 3项目中利用dify web sdk实现无缝聊天窗口嵌入的方法

要在Vue 3项目中让Dify聊天窗口自然融入页面、不跳转不打断用户操作,必须绕过iframe的样式隔离和加载延迟,直接使用Dify官方Web SDK注入原生DOM节点。

获取并验证嵌入配置

登录Dify控制台,进入目标应用的「发布」→「Embed Into Site」页,确认已开启「启用嵌入」开关。此时页面会生成唯一token和baseUrl——【token必须是当前应用下最新生成的,旧token在24小时后自动失效】。复制页面下方显示的完整script标签(含id="dify-chatbot-bubble-button"),不要复制上方iframe的src地址,它不含身份校验,外链访问必然失败。

在Vue 3中注入SDK脚本

打开项目入口文件main.ts或App.vue的<script setup>&#39030;&#37096;&#65292;&#22312;import&#35821;&#21477;&#20043;&#21518;&#12289;&#32452;&#20214;&#23450;&#20041;&#20043;&#21069;&#25554;&#20837;&#20197;&#19979;&#20195;&#30721;&#65306;</script>

const initDifyChatbot = () => {
  if ((window as any).difyChatbotConfig) return;
  (window as any).difyChatbotConfig = {
    token: "YOUR_TOKEN_HERE",
    baseUrl: "https://udify.app",
    dynamicScript: true,
    draggable: true,
    dragAxis: "y"
  };
  const script = document.createElement("script");
  script.src = "https://udify.app/embed.min.js?v=" + Date.now();
  script.defer = true;
  document.body.appendChild(script);
};
onMounted(() => { initDifyChatbot(); });

这一步不能放在onBeforeMount里——因为脚本需挂载到document.body上,而此时body可能尚未就绪;也不能用v-html动态插入script,浏览器会拒绝执行内联脚本。

定制悬浮按钮与窗口样式

方法一:覆盖默认CSS变量
在src/assets/css/dify-custom.css中添加:

#dify-chatbot-bubble-button {
  background-color: #2563eb !important;
  width: 56px !important;
  height: 56px !important;
  border-radius: 50% !important;
}

方法二:替换为SVG图标
准备一个16×16像素的SVG文件,上传至public/icons/chat.svg;再添加CSS:

#dify-chatbot-bubble-button::before {
  content: url(/icons/chat.svg) !important;
  background: none !important;
}

Springboot Vue Builder
Springboot Vue Builder

从零开始编排 SpringBoot+Vue 全栈项目工作流,适用于新建全栈项目或完整脚手架请求,触发后依次调用 product‑spec‑builder(需求调研)等模块。

下载

【注意:若未加background: none !important,原蓝色背景会盖住SVG图标】

绑定上下文信息并触发初始化

第一步:在initDifyChatbot()调用前,向window对象写入上下文数据

(window as any).difyUserContext = {
  user_id: localStorage.getItem("user_id") || "guest",
  page_url: window.location.href,
  product_sku: new URLSearchParams(window.location.search).get("sku") || ""
};

第二步:确保脚本加载完成后再触发首次对话

const script = document.querySelector('script[src*="embed.min.js"]');
if (script && script.onload === null) {
  script.onload = () => {
    setTimeout(() => {(window as any).difyChatbot?.open(), 300);}
  };
}

第三步:监听窗口resize事件,防止按钮在移动端错位

window.addEventListener("resize", () => {
  if ((window as any).difyChatbot) {
    (window as any).difyChatbot.updatePosition();
  }
});

前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

dify vue 3 vue

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
Dify 本地部署与企业配置
Dify 本地部署与企业配置

本专题系统讲解 Dify 从零开始的本地部署方法与企业环境配置实践,涵盖 Docker 安装、依赖准备、数据库初始化、反向代理、参数调优、安全加固与多用户开通,帮助开发者与企业团队快速搭建稳定可用的 Dify 平台。

2026.06.05

1077

15

Dify Agent智能体开发实战教程
Dify Agent智能体开发实战教程

本专题聚焦 Dify Agent 智能体的设计与开发,涵盖 Agent 模式选择、工具集成、提示词设计、多步推理、上下文记忆与多 Agent 协作,帮助开发者构建可执行复杂业务任务的智能体应用。

2026.06.05

285

15

Dify RAG知识库构建实战教程
Dify RAG知识库构建实战教程

本专题围绕 Dify RAG 知识库的全流程实践展开,从文档导入、分段切片、向量化到混合检索、重排优化与召回评估,帮助你打造高准确率、低幻觉的企业知识问答应用。

2026.06.05

276

15

Go-Zero API开发使用教程
Go-Zero API开发使用教程

本专题聚焦Go-Zero的API开发,拆解.api描述文件的语法结构、路由与分组定义、参数绑定与校验规则,说明统一响应体、JWT鉴权、跨域与接口文档生成的落地方式,并给出网关聚合与接口测试的实践建议。

2026.11.12

60

15

Go-Zero安装与goctl环境配置教程
Go-Zero安装与goctl环境配置教程

本专题围绕Go-Zero的安装与工具链配置展开,讲清Go版本要求、goctl安装方式、代理镜像、protoc依赖与环境变量设置,说明多版本共存、升级回退与CI流水线安装的做法,并整理安装阶段的常见报错与验证步骤。

2026.11.12

40

15

Go-Zero零基础入门教程
Go-Zero零基础入门教程

本专题整理Go-Zero的入门知识,从框架定位、环境准备到跑通第一个API服务,讲清目录分层、配置加载、日志与中间件的基本用法,并对比Gin、Kratos的差异,帮助Go开发者建立整体认知,判断它是否适合当前项目。

2026.11.12

20

15

Postman身份认证怎么配置
Postman身份认证怎么配置

本专题从实际API接口调试场景出发,讲解Postman身份认证的完整配置流程,包括常见认证协议介绍、授权参数设置、访问令牌填写、OAuth 2.0授权及认证失败排查,帮助用户正确完成接口授权与访问验证。

2026.11.06

140

12

Postman请求头Headers怎么设置
Postman请求头Headers怎么设置

围绕Postman HTTP请求头配置展开,讲解Headers选项的具体使用方式,包括Key和Value参数填写、请求头信息添加、常见Header字段设置及请求头修改方法,帮助用户解决接口调试过程中遇到的请求头配置问题。

2026.11.06

120

13

Postman接口请求发送教程
Postman接口请求发送教程

详细介绍Postman接口请求的创建与发送方法,涵盖GET和POST请求、URL配置、请求参数、Headers请求头、Body请求体设置以及响应结果查看,帮助用户掌握Postman接口请求的完整操作流程。

2026.11.06

100

10

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Dify零基础教程
Dify零基础教程

共0课时 | 160人学习

学习Agent,从Dify开始
学习Agent,从Dify开始

共0课时 | 162人学习

Dify 部署与运维指南
Dify 部署与运维指南

共0课时 | 0人学习