更新记录
1.0.0(2025-12-24) 下载此版本
更新日志
v1.0.0
✨ 新功能
核心功能
平台兼容性
uni-app(4.87)
| Vue2 | Vue3 | Chrome | Safari | app-vue | app-nvue | Android | iOS | 鸿蒙 |
|---|---|---|---|---|---|---|---|---|
| √ | √ | - | - | √ | - | - | - | - |
| 微信小程序 | 支付宝小程序 | 抖音小程序 | 百度小程序 | 快手小程序 | 京东小程序 | 鸿蒙元服务 | QQ小程序 | 飞书小程序 | 快应用-华为 | 快应用-联盟 |
|---|---|---|---|---|---|---|---|---|---|---|
| - | - | - | - | - | - | - | - | - | - | - |
lf-auth 隐私合规助手
专业的 UniApp 隐私合规解决方案,帮助开发者应对国内安卓应用市场(华为、小米、OPPO、vivo 等)和 iOS App Store 的隐私合规要求。
✨ 核心功能
1. 📊 静态扫描
- SDK 扫描:自动识别
manifest.json中的高风险 SDK 配置 - 权限扫描:分析 Android/iOS 权限申请情况
- 依赖扫描:检测
package.json中的高风险 NPM 包 - 代码扫描:扫描源代码中的敏感 API 调用(可选)
- 风险评分:自动计算隐私合规风险分数
2. 📝 文案生成
- 隐私政策:根据扫描结果自动生成符合规范的 HTML 隐私协议
- 用户协议:生成标准用户服务协议模板
- SDK 清单:生成第三方 SDK 清单,方便应用市场提交
- 多主题:支持浅色/深色主题
3. 🛡️ 拦截组件
- 启动拦截:首次启动自动弹出隐私政策
- SDK 阻断:确保用户同意前不初始化任何 SDK
- 优雅交互:完善的同意/拒绝流程
- 全平台支持:支持 App、H5、小程序
🚀 快速开始
1. 在页面中使用隐私拦截组件
在 App.vue 或首页中引入组件:
<template>
<view>
<!-- 隐私拦截弹窗 -->
<lf-privacy-popup
:privacy-url="privacyUrl"
:agreement-url="agreementUrl"
@agreed="handlePrivacyAgreed"
/>
<!-- 你的应用内容 -->
<view>应用主体内容</view>
</view>
</template>
<script>
export default {
data() {
return {
privacyUrl: "https://yourapp.com/privacy.html",
agreementUrl: "https://yourapp.com/agreement.html",
};
},
methods: {
handlePrivacyAgreed() {
console.log("用户已同意隐私政策,可以初始化SDK了");
// 在这里初始化各种SDK
this.initSDK();
},
initSDK() {
// 初始化友盟、极光等SDK
},
},
};
</script>
2. 使用扫描功能
import { createScanner } from "@/uni_modules/lf-auth/js_sdk/index.js";
// 读取配置文件
const manifest = require("@/manifest.json");
const packageJson = require("@/package.json");
// 创建扫描器
const scanner = createScanner();
// 执行扫描
const result = scanner.scan({
manifest,
packageJson,
});
// 查看扫描结果
console.log("风险评分:", result.riskScore);
console.log("检测到的SDK:", result.sdks);
console.log("检测到的权限:", result.permissions);
console.log("改进建议:", result.suggestions);
3. 生成隐私协议
import { createGenerator } from "@/uni_modules/lf-auth/js_sdk/index.js";
// 创建生成器
const generator = createGenerator({
companyName: "您的公司名称",
appName: "您的应用名称",
contactEmail: "contact@yourcompany.com",
contactPhone: "400-xxx-xxxx",
companyAddress: "公司地址",
});
// 生成隐私政策HTML
const privacyHtml = generator.generate(result);
// 生成用户协议
const agreementHtml = generator.generateUserAgreement();
// 生成SDK清单(纯文本)
const sdkListText = generator.generateSDKListText(result.sdks);
// 保存到文件或展示
console.log(privacyHtml);
4. 一键完成扫描和生成
import { scanAndGenerate } from "@/uni_modules/lf-auth/js_sdk/index.js";
const result = scanAndGenerate({
manifest: require("@/manifest.json"),
packageJson: require("@/package.json"),
generatorOptions: {
companyName: "您的公司名称",
appName: "您的应用名称",
contactEmail: "support@example.com",
},
});
// 获取所有结果
const {
scanResult, // 扫描结果
privacyPolicy, // 隐私政策HTML
userAgreement, // 用户协议HTML
sdkList, // SDK清单文本
} = result;
📖 API 文档
扫描器 API
createScanner(options)
创建扫描器实例
参数:
options(Object) - 可选配置scanManifest(Boolean) - 是否扫描 manifest.json,默认 truescanPackageJson(Boolean) - 是否扫描 package.json,默认 truescanSourceCode(Boolean) - 是否扫描源代码,默认 false
返回: Scanner 实例
scanner.scan(options)
执行完整扫描
参数:
options.manifest(Object|String) - manifest.json 内容options.packageJson(Object|String) - package.json 内容options.sourceFiles(Array) - 源文件列表(可选)
返回: ScanResult 对象
ScanResult 对象结构
{
sdks: [], // SDK列表
permissions: [], // 权限列表
npmPackages: [], // NPM包列表
codeIssues: [], // 代码问题列表
riskScore: 0, // 风险评分 0-100
suggestions: [], // 改进建议
timestamp: '...' // 扫描时间
}
生成器 API
createGenerator(options)
创建生成器实例
参数:
companyName(String) - 公司名称appName(String) - 应用名称contactEmail(String) - 联系邮箱contactPhone(String) - ***(可选)companyAddress(String) - 公司地址(可选)effectiveDate(String) - 生效日期(可选)theme(String) - 主题 'default' | 'dark'includeChildren(Boolean) - 是否包含未成年人保护条款
返回: PrivacyPolicyGenerator 实例
generator.generate(scanResult)
生成隐私政策 HTML
参数:
scanResult(Object) - 扫描结果对象
返回: String (HTML 内容)
generator.generateUserAgreement()
生成用户协议 HTML
返回: String (HTML 内容)
generator.generateSDKListText(sdks)
生成 SDK 清单文本
参数:
sdks(Array) - SDK 列表
返回: String (纯文本)
组件 API
lf-privacy-popup 组件
Props:
| 属性 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| title | String | '用户隐私保护提示' | 弹窗标题 |
| contentPrefix | String | ... | 内容前缀 |
| contentSuffix | String | ... | 内容后缀 |
| agreeText | String | '同意并继续' | 同意按钮文字 |
| disagreeText | String | '不同意' | 不同意按钮文字 |
| showDisagree | Boolean | true | 是否显示不同意按钮 |
| privacyUrl | String | '' | 隐私政策链接 |
| agreementUrl | String | '' | 用户协议链接 |
| showSdkList | Boolean | false | 是否显示 SDK 列表 |
| sdkList | Array | [] | SDK 列表 |
| exitOnDisagree | Boolean | true | 拒绝后是否退出应用 |
| storageKey | String | 'lf_privacy_agreed' | 存储键名 |
| autoShow | Boolean | true | 是否自动检查并显示 |
Events:
| 事件名 | 说明 | 回调参数 |
|---|---|---|
| agree | 用户点击同意 | - |
| agreed | 用户同意(含已同意过的情况) | - |
| disagree | 用户点击不同意 | - |
| show | 弹窗显示时 | - |
| hide | 弹窗隐藏时 | - |
| privacy-click | 点击隐私政策链接 | - |
| agreement-click | 点击用户协议链接 | - |
Methods:
| 方法名 | 说明 | 参数 |
|---|---|---|
| show() | 显示弹窗 | - |
| hide() | 隐藏弹窗 | - |
| reset() | 重置同意状态(测试用) | - |
🎯 最佳实践
1. SDK 延迟初始化
export default {
data() {
return {
sdkInitialized: false,
};
},
methods: {
handlePrivacyAgreed() {
if (!this.sdkInitialized) {
// 用户同意后才初始化SDK
this.initAllSDK();
this.sdkInitialized = true;
}
},
initAllSDK() {
// 初始化友盟统计
// this.initUmeng();
// 初始化极光推送
// this.initJPush();
// 初始化其他SDK...
},
},
};
2. 定期更新隐私协议
建议每次发版前重新扫描并生成隐私协议,确保内容与实际情况一致。
3. 应用市场提交
使用生成的 SDK 清单文本直接复制到应用市场的隐私合规填写表单中。
4. 权限申请时机
在用户实际使用相关功能时再申请权限,而不是启动时就申请所有权限。
🛠️ 高级用法
自定义扫描规则
import { Scanner } from "@/uni_modules/lf-auth/js_sdk/scanner.js";
class CustomScanner extends Scanner {
// 重写或扩展扫描方法
_scanModules(modules) {
super._scanModules(modules);
// 添加自定义扫描逻辑
}
}
自定义隐私协议模板
修改 generator.js 中的生成方法以适配您的需求。
📋 已支持的 SDK 数据库
插件内置 50+常见 SDK 的风险数据库,包括:
统计分析类: uni 统计、友盟、百度统计、TalkingData、神策、GrowingIO
推送服务类: UniPush、极光推送、个推、华为推送、小米推送
地图定位类: 高德地图、百度地图、腾讯地图
广告服务类: 腾讯广告、穿山甲
社交分享类: 微信 SDK、QQ SDK、微博 SDK
其他: 支付、IM、语音、直播、生物识别等
⚠️ 注意事项
- 法律合规性: 本插件生成的隐私协议仅供参考,建议咨询专业法律人士审核
- 及时更新: SDK 或权限变更后应重新扫描并更新隐私协议
- 真实准确: 确保隐私协议内容与应用实际行为一致
- 用户权利: 必须提供账号注销、信息删除等功能
- 未成年保护: 如涉及未成年人用户,需额外注意相关条款
让隐私合规变得简单! 🎉

收藏人数:
下载插件并导入HBuilderX
下载示例项目ZIP
赞赏(0)
下载 48
赞赏 0
下载 12545690
赞赏 1830
赞赏
京公网安备:11010802035340号