kandian-ad-sdk

看店广告SDK - Vue3 广告组件库,支持固定展位和列表穿插广告展示(H5 产物 + uni-app 小程序源码子包)
4,427
Install
npm install kandian-ad-sdk
Latest Version:1.7.2
Vue:3
License:MIT
Last Updated:Oct 22, 2026
Links: npm
Maintainer: ypy18307069958

看点广告 SDK (kandian-ad-sdk)

Vue3 广告组件库,支持固定展位和列表穿插广告展示

✨ 功能特性

  • ✅ 极简 API - 只需 2 个必需参数(广告位编号 + 省编码),其他全部自动处理
  • ✅ 智能识别 - 自动识别广告类型(固定展位/列表穿插)
  • ✅ 自动等待 - 参数未就绪时自动等待,无需手动判断
  • ✅ 自动记录 - 点击自动调用 AddAdvertRecords 接口
  • ✅ 自动跳转 - 点击自动跳转到 LinkUrl
  • ✅ 智能容器 - 自动计算容器样式(max-width、padding)
  • ✅ 环境自适应 - 自动选择 API 地址(测试/生产)
  • ✅ Swiper 轮播 - 基于 swiper 的平滑轮播
  • ✅ TypeScript - 完整的类型定义支持
  • ✅ 响应式设计 - 支持移动端 rpx 单位

📦 安装

npm install kandian-ad-sdk
# 或
pnpm add kandian-ad-sdk
# 或
yarn add kandian-ad-sdk

🔧 环境要求

依赖 版本要求 说明
vue >= 3.2.0 v1.4.2 起兼容 Vue 3.2(uni-app 3.0.0-309xxx 等旧工具链)

⚠️ v1.4.1 及之前版本要求 vue ^3.3.0。若宿主项目使用 Vue 3.2.x(如 uni-app 3.0.0-3090920231225001 + Vite 4 工具链),请升级到 v1.4.2+,否则小程序构建会在 defineEmits 宏处报错。

⚠️ 重要:环境配置

✅ 大多数情况下无需配置

SDK 会自动根据环境变量判断并选择正确的 API 地址:

环境变量值 SDK 使用的 API 地址
production https://gateway.zljx.top/subjectapi (生产环境)
development 或 test http://testwh.zljx.top:8072/pzxf/subjectapi (测试环境)
未设置时 根据域名自动判断

📝 如何在项目中配置环境变量

Vue3 + Vite 项目

在 main.ts/main.js 中注入环境变量(推荐):

// main.ts 或 main.js
import { createApp } from "vue"

// 将环境变量注入到 window,供 SDK 使用
if (typeof window !== "undefined") {
  // 方式1:注入环境标识(SDK 会自动选择对应的 API 地址)
  window.__VITE_APP_ENV__ = import.meta.env.VITE_APP_ENV // production | development | test
  // 或者
  window.__VITE_NODE_ENV__ = import.meta.env.VITE_NODE_ENV

  // 方式2:直接注入 API 地址(优先级更高,推荐)
  window.__KANDIAN_AD_API_URL__ = import.meta.env.VITE_APP_subjectApi

  console.log("✅ SDK 环境配置已注入:", {
    环境: window.__VITE_APP_ENV__ || window.__VITE_NODE_ENV__,
    API地址: window.__KANDIAN_AD_API_URL__
  })
}

const app = createApp(App)
// ...
uni-app 项目

在 App.vue 的 onLaunch 中配置:

// App.vue (uni-app)
export default {
  onLaunch() {
    // uni-app 项目中的配置方式
    if (typeof window !== "undefined") {
      // 方式1:设置环境标识(推荐)
      window.__VITE_APP_ENV__ = "production" // 或 'development'、'test'

      // 方式2:直接设置 API 地址(优先级更高)
      window.__KANDIAN_AD_API_URL__ = "https://gateway.zljx.top/subjectapi"
    }
  }
}

或者在页面的 script 标签中:

<script>
// 在页面 script 中设置(全局生效)
export default {
  onReady() {
    if (typeof window !== "undefined") {
      window.__KANDIAN_AD_API_URL__ = "https://gateway.zljx.top/subjectapi"
    }
  }
}
</script>

🔧 环境判断优先级

SDK 按以下优先级判断使用哪个 API 地址:

  1. 最高优先级:window.__KANDIAN_AD_API_URL__(直接指定 API 地址)
  2. 次优先级:window.__VITE_APP_subjectapi(项目注入的 API 地址)
  3. 环境变量:window.__VITE_APP_ENV__ / window.__VITE_NODE_ENV__
    • production → 生产环境
    • development / test → 测试环境
  4. 最低优先级:域名自动判断
    • localhost / 127.0.0.1 / 192.168.x.x → 测试环境
    • 包含 test 或 .yiuxiu.com 的域名 → 测试环境
    • 其他域名 → 生产环境

🚀 快速开始

1. 在入口文件导入样式

// main.ts
import "kandian-ad-sdk/dist/index.css"

2. 基础用法

Vue 3 项目(推荐)
<template>
  <!-- ✅ SDK 自动管理容器,无需外层 div 包装 -->
  <KandianAd
    location-no="214112578018794501"
    :province-code="provinceCode"
    :city-code="cityCode"
    :area-code="areaCode"
  />
</template>

<script setup lang="ts">
import { ref } from "vue"
import { KandianAd } from "kandian-ad-sdk"

// ⚠️ 重要:行政区域编码需要根据用户实际位置动态获取
// 以下仅为示例,实际使用时请通过定位接口获取真实编码
const provinceCode = ref("330000") // 需要动态获取
const cityCode = ref("330700") // 需要动态获取
const areaCode = ref("330702") // 需要动态获取
</script>
Vue 2 项目
<template>
  <!-- Vue 2 使用方式相同 -->
  <KandianAd
    location-no="214112578018794501"
    :province-code="provinceCode"
    :city-code="cityCode"
    :area-code="areaCode"
  />
</template>

<script>
import { KandianAd } from "kandian-ad-sdk"

export default {
  // ⚠️ Vue 2 必须手动注册组件
  components: {
    KandianAd
  },
  data() {
    return {
      // ⚠️ 行政区域编码需要根据用户实际位置动态获取
      provinceCode: "330000", // 需要动态获取
      cityCode: "330700", // 需要动态获取
      areaCode: "330702" // 需要动态获取
    }
  }
}
</script>

Vue 2 与 Vue 3 的主要差异:

  • 组件注册:Vue 2 需要在 components 选项中手动注册,Vue 3 setup 语法自动注册
  • 数据定义:Vue 2 使用 data() 函数,Vue 3 使用 ref() 或 reactive()
  • 模板绑定:两者都使用 :province-code 动态绑定
  • Props 绑定:对象类型的 props(如 custom-style)在 Vue 2 和 Vue 3 中都使用 :custom-style="{...}" 绑定

⚠️ Vue2/Vue3 调用注意事项

1. 对象类型 Props 的绑定方式

Vue 2 和 Vue 3 都必须使用动态绑定:

<!-- ✅ 正确:使用 :custom-style 动态绑定 -->
<KandianAd :custom-style="{ autoplayDelay: 5000 }" />

<!-- ❌ 错误:直接传递对象会在 Vue 2 中导致响应式失效 -->
<KandianAd custom-style="{ autoplayDelay: 5000 }" />

2. 响应式数据绑定

Vue 2:

<script>
export default {
  data() {
    return {
      swiperStyle: {
        autoplayDelay: 5000,
        showPagination: true
      }
    }
  }
}
</script>

<template>
  <!-- ✅ 绑定 data 中的响应式对象 -->
  <KandianAd :custom-style="swiperStyle" />
</template>

Vue 3:

<script setup lang="ts">
import { reactive } from "vue"

const swiperStyle = reactive({
  autoplayDelay: 5000,
  showPagination: true
})
</script>

<template>
  <!-- ✅ 绑定响应式对象 -->
  <KandianAd :custom-style="swiperStyle" />
</template>

3. 条件编译(uni-app 项目)

<script setup>
// uni-app 中条件处理环境变量
// #ifdef H5
const apiBaseUrl = "https://gateway.zljx.top/subjectapi"
// #endif

// #ifdef MP-WEIXIN
const apiBaseUrl = "https://gateway.zljx.top/subjectapi"
// #endif
</script>

🎯 参数说明

必需参数

参数 类型 说明
location-no String 广告位编号
province-code String 省编码(如:330000),最低要求,必须有值
city-code String 市编码(如:330700),传空或 null 时接口传空字符串
area-code String 区编码(如:330702),传空或 null 时接口传空字符串

⚠️ v1.4.3 变更:省市区编码参数保持必填,但运行时只校验 province-code 省级编码有值(最低要求),city-code / area-code 传入空字符串或 null 时,SDK 自动补空字符串传给接口。

<!-- ✅ 只获取到省编码也可以(市/区传空) -->
<KandianAd
  location-no="214112578018794501"
  province-code="330000"
  city-code=""
  area-code=""
/>

<!-- ✅ 省市区编码完整传入 -->
<KandianAd
  location-no="214112578018794501"
  province-code="330000"
  city-code="330700"
  area-code="330702"
/>

可选参数

参数 类型 默认值 说明
auto-record Boolean true 是否自动记录点击
auto-jump Boolean true 是否自动跳转
show-ad-info Boolean false 是否显示广告文本信息
custom-style Object 见下方 自定义轮播样式(固定展位有效)
insert-position Number 3 每 N 条插入一条广告(列表穿插有效)
hide-on-error Boolean true 错误时是否隐藏组件

custom-style 配置

{
  paginationColor?: string        // 分页器颜色(默认:#fff)
  paginationActiveColor?: string  // 分页器激活颜色(默认:#409eff)
  navigationColor?: string        // 导航按钮颜色(默认:#fff)
  autoplayDelay?: number          // 自动播放延迟(毫秒),设置后启用自动轮播
  showNavigation?: boolean        // 是否显示导航按钮(默认:false)
  showPagination?: boolean       // 是否显示分页器(默认:true)
  borderRadius?: {                // 容器圆角配置(v1.6.0+,不传时保持默认圆角不变)
    enabled?: boolean             // 是否启用圆角(false 时关闭圆角)
    positions?: AdBorderRadiusPosition | AdBorderRadiusPosition[]
                                  // 圆角位置,默认 'all';支持数组组合,如 ["top", "bottom-left"]
    size?: number | string        // 圆角大小:number 跟随 size-unit(默认 20);string 直接使用(如 "16px"、"50%")
  }
}

圆角 positions 可选值(v1.6.0+):

值 说明 值 说明
all 四角(默认) top-left 左上角
top 上侧两角 top-right 右上角
bottom 下侧两角 bottom-left 左下角
left 左侧两角 bottom-right 右下角
right 右侧两角

💡 圆角配置作用于广告整体容器(固定展位/列表穿插均生效)。size 传 number 时跟随 size-unit 单位(H5 端 rpx 模式按屏幕宽度换算为 px,小程序端 rpx 原生生效);如需精确控制建议传 string(如 "16px")。

自动轮播说明:

  • ✅ v1.4.3 起默认自动轮播:多个广告时自动开启轮播,默认间隔 3000 毫秒(3 秒)
  • 如需自定义间隔,设置 autoplayDelay 为任意数值(如 5000)
  • 如需禁用自动轮播,设置 autoplayDelay: 0
  • 鼠标悬停时会自动暂停播放
  • 仅固定展位(Type=1)支持轮播功能

使用示例:

<!-- 启用自动轮播,5秒切换一次 -->
<KandianAd
  location-no="214112578018794501"
  :province-code="provinceCode"
  :city-code="cityCode"
  :area-code="areaCode"
  :custom-style="{ autoplayDelay: 5000 }"
/>

<!-- 关闭圆角(v1.6.0+) -->
<KandianAd
  location-no="214112578018794501"
  :province-code="provinceCode"
  :city-code="cityCode"
  :area-code="areaCode"
  :custom-style="{ borderRadius: { enabled: false } }"
/>

<!-- 只有上侧圆角,大小 16(v1.6.0+) -->
<KandianAd
  location-no="214112578018794501"
  :province-code="provinceCode"
  :city-code="cityCode"
  :area-code="areaCode"
  :custom-style="{ borderRadius: { positions: 'top', size: 16 } }"
/>

📝 完整示例

监听事件

<template>
  <KandianAd
    location-no="214112578018794501"
    province-code="330000"
    city-code="330700"
    area-code="330702"
    @ad-load="handleAdLoad"
    @ad-error="handleAdError"
  />
</template>

<script setup lang="ts">
import { KandianAd } from "kandian-ad-sdk"
import type { AdvertData } from "kandian-ad-sdk"

// 广告加载完成
const handleAdLoad = (data: AdvertData | null) => {
  if (data) {
    console.log("广告加载成功:", data.Title)
    console.log("广告类型:", data.TypeText)
    console.log("广告数量:", data.Adverts.length)
  }
}

// 广告加载失败
const handleAdError = (error: Error) => {
  console.error("广告加载失败:", error.message)
}
</script>

高级配置

<template>
  <!-- 关闭自动记录和跳转 -->
  <KandianAd
    location-no="214112578018794501"
    province-code="330000"
    city-code="330700"
    area-code="330702"
    :auto-record="false"
    :auto-jump="false"
    @ad-click="handleAdClick"
  />

  <!-- 自定义轮播样式(启用自动轮播) -->
  <KandianAd
    location-no="214112578018794501"
    province-code="330000"
    city-code="330700"
    area-code="330702"
    :custom-style="{
      autoplayDelay: 5000, // 设置自动轮播延迟为5秒
      showPagination: true,
      paginationColor: '#409eff'
    }"
  />

  <!-- SDK 自动根据屏幕宽度适配,无需手动设置 -->
  <KandianAd
    location-no="214112578018794501"
    province-code="330000"
    city-code="330700"
    area-code="330702"
  />
</template>

<script setup lang="ts">
import { KandianAd } from "kandian-ad-sdk"
import type { Advert } from "kandian-ad-sdk"

// 手动处理广告点击
const handleAdClick = (ad: Advert) => {
  console.log("广告被点击:", ad.Title)
  // 自定义处理逻辑
}
</script>

🔧 环境配置

SDK 会自动选择 API 地址,通常无需手动配置:

  • 本地开发(localhost / 127.0.0.1 / 192.168.x.x)→ 测试环境
  • 测试域名(包含 test 或 .yiuxiu.com)→ 测试环境
  • 生产域名(其他)→ 生产环境

自定义 API 地址(可选)

如果需要自定义 API 地址:

<script>
// 在组件中设置(全局生效)
window.__KANDIAN_AD_API_URL__ = "https://your-custom-api.com"
</script>

<script setup lang="ts">
// 或使用环境变量
const apiBaseUrl = import.meta.env.VITE_APP_subjectapi
</script>

📱 uni-app 项目特别说明

SDK v1.3.0+ 支持 uni-app 全端:H5/App 使用 H5 产物,小程序端使用源码子包 kandian-ad-sdk/mp。

安装说明

uni-app 项目中安装和使用 SDK 与标准 Vue3 项目完全相同:

# 在 uni-app 项目根目录执行
pnpm add kandian-ad-sdk

uni-app 特殊配置(H5/App 端)

如果遇到环境变量问题,建议在 App.vue 或页面组件的 onLaunch 中设置 API 地址:

// App.vue (uni-app)
export default {
  onLaunch() {
    // 设置 SDK API 地址(推荐方式)
    ;(window as any).__KANDIAN_AD_API_URL__ =
      "https://gateway.zljx.top/subjectapi"
  }
}

兼容性说明

  • ✅ H5 端:完全兼容(kandian-ad-sdk 主入口)
  • ✅ 小程序端:完全兼容(v1.3.0+ 需使用 kandian-ad-sdk/mp 源码子包,见下文)
  • ✅ App 端:完全兼容(kandian-ad-sdk 主入口)
  • ✅ Vue 版本:v1.4.2 起同时兼容 Vue 3.2.x 与 Vue 3.3+(见下方"Vue 3.2 兼容性")

Vue 3.2 兼容性(v1.4.2 重要修复)

Vue 宏(defineProps/defineEmits)的类型参数中引用外部导入类型是 Vue 3.3+ 才支持的能力。v1.4.1 的 mp 子包组件使用了 import type { AdEmits } from "../../shared/types" + defineEmits<AdEmits>() 的写法,在 Vue 3.2 的 compiler-sfc(如 uni-app 3.0.0-3090920231225001 + Vite 4 工具链,Vue 3.2.47)下构建小程序会报错:

[@vue/compiler-sfc] type argument passed to defineEmits() must be a function type,
a literal type with call signatures, or a reference to the above types.

v1.4.2 已将 mp 子包各组件的 Props/Emits 类型全部改为 SFC 内本地声明,不再依赖外部导入类型,兼容 Vue 3.2。

mp 子包源码维护约定(新增/修改组件时必须遵守):

  • defineProps / defineEmits 的类型参数只能在 SFC 内本地声明(interface 直接写在组件里)
  • 本地 Props 接口不得 extends 外部导入的接口,字段需内联;属性类型只能使用可静态推断的基础类型(string/number/boolean/字面量联合/内联对象结构)
  • Emits 接口中事件名的第一个参数必须是字符串字面量;其余参数可引用导入类型(仅用于 TS 提示,不参与运行时生成)

已验证项目

  • pzxf_m 品浙消费(uni-app 3.0.0-4030620241128001 + Vue 3.4.21 + Vite 5,微信小程序 + H5 双端构建通过)
  • zljx3 浙里金消用户端(uni-app 3.0.0-3090920231225001 + Vue 3.2.47 + Vite 4,微信小程序构建通过)

🧩 小程序端接入(uni-app 微信小程序等)

原理

小程序端组件模板必须在业务项目编译期编译成 WXML,因此 SDK 为小程序提供源码形式的子包 kandian-ad-sdk/mp(内置 <swiper>/<image> 等原生组件实现,不依赖 DOM)。主入口的 dist 产物在小程序端无法使用(vue 被 alias 为 @dcloudio/uni-mp-vue,缺少 openBlock 等导出)。

第 1 步:配置 vite(防止 dev 预打包 .vue 源码失败)

// vite.config.ts
export default defineConfig({
  optimizeDeps: {
    exclude: ["kandian-ad-sdk"]
  }
})

第 2 步:条件编译导入

// #ifndef MP
import { KandianAd } from "kandian-ad-sdk"
// #endif
// #ifdef MP
import KandianAd from "kandian-ad-sdk/mp/components/KandianAd.vue"
// #endif

⚠️ 小程序分支必须使用默认导入 .vue 源文件的方式(kandian-ad-sdk/mp/components/KandianAd.vue),这样 uni-app 编译器才能正确生成 usingComponents 注册。主入口 kandian-ad-sdk 的 CSS 也需用 // #ifndef MP 隔离。

模板两端统一使用:

<KandianAd
  location-no="xxxxx"
  :province-code="areaNoObj.ProvinceNo"
  :city-code="areaNoObj.CityNo"
  :area-code="areaNoObj.AreaNo"
  web-view-path="/pages/webview"
/>

第 3 步:设置 API 地址(小程序端)

小程序无法通过 window/域名判断环境,需在启动时显式设置(或使用 apiBaseUrl prop):

// App.vue 或 main.ts
import { setApiBaseUrl } from "kandian-ad-sdk/mp"

setApiBaseUrl("https://gateway.zljx.top/subjectapi") // 按环境设置
// 未设置时兜底使用生产地址 https://gateway.zljx.top/subjectapi

小程序端差异说明

能力 H5 行为 小程序行为
轮播 swiper/vue(DOM) 内置 <swiper>(autoplay/circular/indicator-dots)
尺寸换算 JS 动态换算 px 原生 rpx(750 设计稿值 1:1 映射)
http(s) 外链跳转 window.open 新窗口 跳转 web-view-path 指定的 webview 页面(需传该 prop,未传则仅触发 ad-click 事件)
内部路由 /xxx location.href uni.navigateTo
点击埋点 自动(AddAdvertRecords) 自动(uni.request 实现)
定位工具(location.ts) 支持 不提供(小程序端请直接传区域编码 props)

已验证项目

  • pzxf_m(uni-app vue3 微信小程序 + H5 双端构建通过)

🎨 样式说明

SDK 自动管理容器样式

  • ✅ 自动设置 max-width(根据广告位尺寸)
  • ✅ 自动设置 padding(根据样式类型计算)
  • ✅ 同一页面多个广告位样式互不影响

样式类型

  • 纯图片模式(StyleType ≠ 2):SDK 自动计算 padding 居中显示图片
  • 图文结合模式(StyleType = 2):padding 由 SDK 内部处理

📊 类型定义

interface Advert {
  AdrertID: number
  Title: string
  SubTitle: string
  ImageUrl: string
  LinkUrl: string
  Customer: string
  Sort: number
  Status: number
}

interface AdvertData {
  ConfigID: number
  LocationNo: string
  Title: string
  Type: number
  TypeText: string
  StyleType: number
  StyleTypeText: string
  AdvertSize: string
  AdvertImgSize: string
  Adverts: Advert[]
}

🌐 浏览器支持

  • Chrome (最新版本)
  • Firefox (最新版本)
  • Safari (最新版本)
  • Edge (最新版本)

🔗 相关链接

  • 完整文档:查看项目内的 KANDIAND_AD_GUIDE.md
  • 移动端适配:查看项目内的 MOBILE_ADAPTATION_GUIDE.md
  • 多实例修复:查看项目内的 MULTI_INSTANCE_FIX.md

📝 更新日志

v1.6.2 (2026-09-29)

  • 🐛 修复:宿主 App/小程序 web-view 中,广告图片已按平台切换为 App 图(ImageUrl2),但广告位未配置"APP 小程序广告图片尺寸"(AdvertImgSize2)或下发接口未返回该字段时,容器仍按 H5 尺寸(AdvertImgSize)比例渲染导致高度失真
  • 修复:新增图片真实比例兜底——非 Web 环境(isNonWeb() 为 true)且未配置 AdvertImgSize2 时,第一张广告图加载后读取真实宽高比(naturalWidth/naturalHeight),覆盖容器配置比例(多图轮播仅取第一张,容器比例保持稳定)
  • 影响范围:FixedPositionAd(H5/小程序)、InlineAd(H5/小程序)四个组件的纯图片模式;已正确配置 AdvertImgSize2 的场景与纯 H5 环境行为完全不变
  • 兜底说明:H5 版通过 aspect-ratio 覆盖、小程序版通过 padding-top 百分比覆盖;图文结合模式(StyleType = 2)不启用兜底

v1.6.1 (2026-09-28)

  • 🐛 修复:宿主 App/小程序通过 web-view 加载纯 Web 产物时,isNonWeb() 无法识别环境,导致广告始终取 H5 图(ImageUrl)而非 App/小程序图(ImageUrl2)
  • 原因:该场景下无 uni-app 全局对象(uni),原判断链路恒返回 false
  • 修复:isNonWeb() 判断链路最前面新增 宿主 UA 标识识别——UA(小写)包含 miniprogram(微信小程序 web-view 自带)或 pinzhexiaofeiapp(品浙消费 App 自定义标识)即视为非纯 Web;原有 uni-app 运行时判断保持不变
  • 兼容性:UA 获取通过 globalThis 安全访问,小程序端(无 navigator)不受影响

v1.6.0 (2026-09-27)

  • ✨ 新增:customStyle.borderRadius 容器圆角配置,支持开关(enabled)、位置(positions:四边/单边/单角,可数组组合)、大小(size);不传时保持默认圆角行为不变
  • ⚠️ 行为变更:纯图片广告(StyleType ≠ 2)渲染尺寸改为以当前平台图片尺寸为准(H5 取 AdvertImgSize,App/小程序优先 AdvertImgSize2),降级使用广告位尺寸——图片尺寸区分两端而广告位尺寸仅一套,以图片为准可保证纯图片广告比例与素材一致;图文结合广告(StyleType = 2)保持广告位尺寸优先,行为不变
  • ✨ 新增类型导出:AdBorderRadiusPosition、AdBorderRadiusStyle
  • ✨ 新增工具函数导出(mp 子包入口):getPreferredAdSize、resolveBorderRadiusStyle

v1.4.4 (2026-09-11)

  • 🐛 重要修复:小程序端(mp 子包)图文结合模式(StyleType = 2)文字不显示
  • 原因:FixedPositionAd.vue 中 __image-wrapper 的 width: 100%(纯图片模式样式)在图文结合模式下作为 flex 子项占满整行,把 flex: 1 的文字区域挤压为 0 宽度,文字渲染但不可见
  • 修复:图文结合模式内覆盖图片容器为 width: auto; flex-shrink: 0(宽度由图片内容决定,与 H5 版行为一致),文字区域正常分配剩余空间
  • 影响范围:仅 kandian-ad-sdk/mp 小程序端;H5 端无此问题

v1.4.3 (2026-09-09)

  • ✨ 变更:省市区地区编码校验放宽,省编码为最低要求(必传且有值)
  • ✨ city-code / area-code 传入空字符串或 null 时,SDK 自动补空字符串传给接口,不再阻塞广告加载
  • ✨ 变更:轮播默认自动播放(默认 3000 毫秒),customStyle.autoplayDelay: 0 可禁用
  • 📝 更新参数说明文档

v1.4.2 (2026-09-05)

  • 🐛 重要修复:mp 小程序源码子包兼容 Vue 3.2(uni-app 3.0.0-3090920231225001 + Vite 4 等旧工具链)
  • 🐛 修复:InlineAd.vue / FixedPositionAd.vue 的 Props 接口不再 extends 外部导入的 AdProps,改为 SFC 内本地完整声明
  • 🐛 修复:defineEmits 类型参数由外部导入的 AdEmits 改为本地声明的接口,解决 Vue 3.2 compiler-sfc 报错 type argument passed to defineEmits() must be a function type...
  • 🔧 变更:peerDependencies.vue 由 ^3.3.0 放宽为 >=3.2.0
  • ✅ 验证:品浙消费 pzxf_m(Vue 3.4.21)与浙里金消 zljx3(Vue 3.2.47)微信小程序构建均通过

v1.2.21 (2025-01-22)

  • 🔧 调试增强:增强 localStorage 样式合并的调试日志
  • 🔧 优化:当检测到 localStorage 中存在保存的样式配置时,输出警告信息
  • 🔧 优化:增强样式合并过程的调试输出,便于排查问题
  • 📝 新增:localStorage 清除建议,避免旧配置影响新功能

v1.2.20 (2025-01-22)

  • 🐛 重要修复:修复 customStyle.autoplayDelay 不生效的问题
  • 🐛 修复:KandianAd.vue 为 customStyle 添加默认值 () => ({}),确保响应式追踪
  • 🐛 修复:优化 FixedPositionAd.vue 的 autoplay 判断逻辑
  • 📝 新增:详细的 Vue2/Vue3 调用注意事项文档
  • 📝 新增:custom-style 完整使用示例和正确绑定方式
  • ✅ 测试:验证 autoplayDelay 在 Vue2 和 Vue3 中都能正常工作

v1.2.8 (2024-08-14)

  • 🔧 重要修复:支持通过环境变量判断环境(支持本地开发连接线上环境)
  • ✨ 新增:支持 window.__VITE_APP_ENV__ 和 window.__VITE_NODE_ENV__ 环境变量
  • 🔧 优化:环境判断优先级调整为:用户指定 > 环境变量 > 域名判断
  • 🐛 修复:修复 watch 的 immediate: false 导致参数已就绪时不加载的问题
  • 📝 更新:完善环境配置文档,提供多种配置方式

v1.2.7 (2024-08-14)

  • 🔧 重要修复:完全兼容 uni-app 项目
  • 🔧 增强:移除所有可能导致 __DEFINES__ is not defined 的代码
  • 🔧 优化:添加 @vue/runtime-core 和 @vue/shared 到 externals
  • 🔧 优化:添加 define: {} 配置防止环境变量处理
  • 📝 新增:uni-app 项目特别说明文档
  • ✅ 测试:已在 uni-app 项目中验证通过

v1.2.4 (2024-08-14)

  • ✨ 新增:参数自动等待功能,参数未就绪时不再报错
  • ✨ 新增:自动监听参数变化,参数齐全时自动加载
  • 🐛 修复:解决参数逐步传入时的报错问题

v1.2.3

  • 📝 完善类型定义
  • 🐛 修复容器样式计算问题

v1.2.2

  • ✨ 新增:自动点击记录功能
  • ✨ 新增:自动跳转功能

v1.1.0

  • 🎉 首次发布

📄 许可证

MIT

Related Packages

@uni_toolkit/webpack-plugin-component-config

一个用于 UniApp 项目的 Webpack 插件,用于处理 Vue 文件中的 `<component-config>`...

6,153 30
@uni_toolkit/vite-plugin-component-config

一个用于 UniApp 项目的 Vite 插件,用于处理 Vue 文件中的 `<component-config>` 标...

5,870 30
@uni_toolkit/vite-plugin-component-insight

一个用于 uni-app Vue3 项目的 Vite 插件,用于分析组件被哪些页面使用、使用了多少次...

3,691 30
@uni_toolkit/webpack-plugin-component-insight

一个用于 uni-app Vue2 项目的 Webpack 插件,用于分析组件被哪些页面使用、使用了多...

2,399 30
@jasonleeya/jj-ui

基于 uni-app + Vue3 + TypeScript 的跨平台 UI 组件库,兼容 H5 和微信小程序

1,323

Version History

Version Released License
1.7.2 MIT
1.7.1 MIT
1.7.0 MIT
1.6.3 MIT
1.6.2 MIT