1.0.27 • Published 12 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
12 months ago
1.0.26
12 months ago
1.0.25
12 months ago
1.0.24
12 months ago
1.0.23
12 months ago
1.0.22
12 months ago
1.0.21
12 months ago
1.0.20
12 months ago
1.0.19
12 months ago
1.0.18
12 months ago
1.0.17
12 months ago
1.0.16
12 months ago
1.0.15
12 months ago
1.0.14
12 months ago
1.0.13
12 months ago
1.0.12
12 months ago
1.0.11
12 months ago
1.0.10
12 months ago
1.0.9
12 months ago
1.0.8
12 months ago
1.0.7
12 months ago
1.0.6
12 months ago
1.0.4
12 months ago
1.0.3
12 months ago
1.0.2
1 year ago
1.0.1
1 year ago
1.0.0
1 year ago