1.0.27 • Published 9 months ago
@hashcoop/referral-popup v1.0.27
Loloyal Referral Popup SDK
Loloyal Referral Popup SDK 是一个轻量级、高度可定制的推荐好友弹窗组件,专为电商和会员系统设计。通过简单的 API,快速为您的网站添加精美的推荐弹窗功能。
✨ 特性
- 🎨 高度可定制 - 自定义外观、布局和内容
- 📱 响应式设计 - 完美适配移动端和桌面端
- 🔌 易于集成 - 支持多种集成方式,适合各类网站和应用
- 🔄 状态管理 - 内置 Jotai 状态管理,处理各种交互场景
- 🛡️ 类型安全 - 使用 TypeScript 开发,提供类型定义
- 🌐 全球化 - 支持多语言内容设置
🚀 快速开始
安装
npm install loloyal-referral-popup
# 或
yarn add loloyal-referral-popup在 React 项目中使用
import React, { useEffect } from 'react';
import ReferralPopup from '@hashcoop/referral-popup';
function App() {
useEffect(() => {
// 初始化弹窗
const popup = ReferralPopup.init({
button_color: '#4a90e2',
button_text_color: '#FFFFFF',
background_layout: 'left',
banner_url: 'https://example.com/banner.jpg',
shape: 16,
custom_css: '',
first_step: {
content: '邀请好友,双方都可获得优惠',
placeholder: '请输入您的邮箱',
button_text: '获取优惠码'
},
second_step: {
content: '您已获得10元优惠券',
button_text: '立即使用'
}
});
// 打开弹窗
popup.open();
// 组件卸载时关闭弹窗
return () => {
popup.close();
};
}, []);
return (
<div>
<h1>我的React应用</h1>
<button onClick={() => ReferralPopup.open()}>打开推荐弹窗</button>
</div>
);
}
export default App;在普通 JavaScript 项目中使用
// 初始化SDK
const popup = ReferralPopup.init({
button_color: '#4a90e2',
button_text_color: '#FFFFFF',
background_layout: 'left',
banner_url: 'https://example.com/banner.jpg',
shape: 16,
custom_css: '',
first_step: {
content: '邀请好友,双方都可获得优惠',
placeholder: '请输入您的邮箱',
button_text: '获取优惠码'
},
second_step: {
content: '您已获得10元优惠券',
button_text: '立即使用'
}
});
// 自定义样式
popup.setStyles({
button_color: '#f85555',
background_layout: 'right',
shape: 25
});
// 自定义内容
popup.setFirstStepContent({
content: '邀请好友,双方都可获得优惠',
placeholder: '请输入您的邮箱',
button_text: '获取优惠码'
});
// 打开弹窗
popup.open();📖 API 文档
SDK 方法
| 方法 | 描述 | 参数 | 返回值 |
|---|---|---|---|
init(config, mountElement?) | 初始化弹窗 | config: 弹窗配置对象mountElement?: 可选,指定弹窗挂载的 DOM 元素 | SDK 实例 |
open() | 打开弹窗 | 无 | SDK 实例 |
close() | 关闭弹窗 | 无 | SDK 实例 |
setStyles(styles) | 设置弹窗样式 | styles: 样式配置对象 | SDK 实例 |
setFirstStepContent(content) | 设置第一步内容 | content: 包含内容、占位符和按钮文本的对象 | SDK 实例 |
setSecondStepContent(content) | 设置第二步内容 | content: 包含内容和按钮文本的对象 | SDK 实例 |
showCouponCode(couponCode) | 直接显示优惠码 | couponCode: 优惠码字符串 | SDK 实例 |
resetState() | 重置弹窗状态 | 无 | SDK 实例 |
switchLanguage(locale) | 切换多语言 | locale: 语言代码 | Promise<SDK 实例> |
setMobileStyle(isMobile) | 设置是否使用移动端样式 | isMobile: 布尔值 | SDK 实例 |
配置选项
interface PopupConfig {
// 样式设置
custom_css: string; // 自定义CSS
button_color: string; // 按钮颜色
button_text_color: string; // 按钮文字颜色
background_layout: 'left' | 'right' | 'top'; // 布局方式
banner_url: string; // 横幅图片URL
shape: number; // 圆角大小 (0-100)
// 第一步内容
first_step: {
content: string; // 主要内容
placeholder: string; // 输入框占位符
button_text: string; // 按钮文本
};
// 第二步内容
second_step: {
content: string; // 主要内容
button_text: string; // 按钮文本
};
// 可选的挂载元素
mountElement?: HTMLElement | null;
}高级用法示例
自定义样式
popup.setStyles({
custom_css: '.loloyal-referral-popup-container { background: red; }',
button_color: '#f85555',
button_text_color: '#ffffff',
background_layout: 'right',
banner_url: 'https://example.com/banner.jpg',
shape: 25
});多语言支持
// 切换到英文
await popup.switchLanguage('en');
// 切换到中文
await popup.switchLanguage('zh');适配移动端
// 自动检测是否为移动设备
const isMobile = window.innerWidth < 768;
popup.setMobileStyle(isMobile);
// 添加窗口大小变化监听
window.addEventListener('resize', () => {
popup.setMobileStyle(window.innerWidth < 768);
});直接展示优惠码
// 跳过邮箱收集步骤,直接显示优惠码
popup.showCouponCode('SAVE20');📖 文档
查看完整的集成指南获取更多详细信息。
🔧 本地开发
克隆仓库
git clone https://github.com/channelwill/loloyal-referral-popup.git cd loloyal-referral-popup安装依赖
npm install启动开发服务器,浏览器需要拼接:?loloyal_referral_code=Q2Oh2zsSGr9R
npm dev构建生产版本
npm run build
👥 贡献指南
我们欢迎任何形式的贡献!请在提交 PR 前先开一个 issue 讨论您的想法。
📄 许可证
MIT
1.0.27
9 months ago
1.0.26
9 months ago
1.0.25
9 months ago
1.0.24
9 months ago
1.0.23
9 months ago
1.0.22
9 months ago
1.0.21
9 months ago
1.0.20
9 months ago
1.0.19
9 months ago
1.0.18
9 months ago
1.0.17
9 months ago
1.0.16
9 months ago
1.0.15
9 months ago
1.0.14
9 months ago
1.0.13
9 months ago
1.0.12
9 months ago
1.0.11
9 months ago
1.0.10
9 months ago
1.0.9
9 months ago
1.0.8
9 months ago
1.0.7
9 months ago
1.0.6
9 months ago
1.0.4
9 months ago
1.0.3
9 months ago
1.0.2
10 months ago
1.0.1
10 months ago
1.0.0
10 months ago