chore: v6.6.6 版本迭代更新
主要变更: 1. 重构"国学"相关模块为"经典名句",统一命名规范 2. 重命名"阅读报告"为"使用报告",调整相关文案与配置 3. 修复iOS模拟器图片缓存兼容问题,优化图表渲染逻辑 4. 新增设备活跃状态前端兜底判断,修复在线计数异常 5. 完善登录/注册流程,新增忘记密码路由与账户编辑提示 6. 优化文件传输与字体导入逻辑,废弃过时的bytes属性使用 7. 添加Spotlight全局快捷键支持,更新隐私权限与通知配置 8. 补充数据库迁移脚本与部署文档,修复后端接口兼容问题 9. 调整部分UI交互细节,优化内存占用与应用稳定性
This commit is contained in:
@@ -0,0 +1,16 @@
|
||||
-- =====================================================
|
||||
-- 迁移脚本: v10.2.1 - 金币字段 + 注册赠送修复
|
||||
-- 时间: 2026-06-07
|
||||
-- 说明: tool_user 表新增 gold(金币) 字段
|
||||
-- 修复: 注册接口因gold字段不存在导致500错误
|
||||
-- =====================================================
|
||||
|
||||
-- 1. tool_user表新增gold字段(如已存在则跳过)
|
||||
ALTER TABLE `tool_user`
|
||||
ADD COLUMN `gold` INT(10) UNSIGNED NOT NULL DEFAULT 0 COMMENT '金币' AFTER `score`;
|
||||
|
||||
-- 2. 确保sec_question和sec_answer字段存在(如已存在则跳过)
|
||||
-- ALTER TABLE `tool_user`
|
||||
-- ADD COLUMN `sec_question` TINYINT(2) UNSIGNED NOT NULL DEFAULT 0 COMMENT '密保问题编号(0=未设置,1-8=预置问题)' AFTER `avatar_url`,
|
||||
-- ADD COLUMN `sec_answer` VARCHAR(32) NOT NULL DEFAULT '' COMMENT '密保答案MD5哈希' AFTER `sec_question`;
|
||||
-- ALTER TABLE `tool_user` ADD INDEX `idx_sec_question` (`sec_question`);
|
||||
@@ -382,7 +382,7 @@ class UserSecurity extends Api
|
||||
/**
|
||||
* @name 用户注册
|
||||
* @desc 注册新用户,需回执验证(客户端已验证邮箱),可选填密保问题,注册赠送50积分+50金币
|
||||
* @lastUpdate v10.2.0 新增注册赠送50积分+50金币
|
||||
* @lastUpdate v10.2.1 修复: 密保问题单独更新避免字段不存在导致500; gold字段容错; 整体try-catch
|
||||
*/
|
||||
public function register()
|
||||
{
|
||||
@@ -426,56 +426,105 @@ class UserSecurity extends Api
|
||||
}
|
||||
}
|
||||
|
||||
$extend = [];
|
||||
// 密保问题验证(先验证,但不放入$extend,注册成功后单独更新)
|
||||
$secQuestionValid = false;
|
||||
$secAnswerHash = '';
|
||||
if ($secQuestion > 0 && $secAnswer) {
|
||||
if (!isset(self::$secQuestions[$secQuestion])) {
|
||||
$this->error('密保问题编号无效(1-8)');
|
||||
}
|
||||
$this->validateLength($secAnswer, '密保答案', 1, 50);
|
||||
$extend['sec_question'] = $secQuestion;
|
||||
$extend['sec_answer'] = $this->hashSecAnswer($secAnswer);
|
||||
$secQuestionValid = true;
|
||||
$secAnswerHash = $this->hashSecAnswer($secAnswer);
|
||||
}
|
||||
|
||||
// 不再将sec_question/sec_answer放入$extend,避免字段不存在时User::create失败
|
||||
// 保留$extend变量定义,便于后续扩展其他字段
|
||||
$extend = [];
|
||||
$ret = $this->auth->register($username, $password, $email, $mobile, $extend);
|
||||
if ($ret) {
|
||||
$userId = $this->auth->id;
|
||||
$verification = db('user')->where('id', $userId)->value('verification');
|
||||
$verification = $verification ? json_decode($verification, true) : [];
|
||||
$verification['email'] = 1;
|
||||
db('user')->where('id', $userId)->update(['verification' => json_encode($verification)]);
|
||||
|
||||
// 注册赠送50积分和50金币
|
||||
$registerScore = 50;
|
||||
$registerGold = 50;
|
||||
$userBefore = db('user')->where('id', $userId)->find();
|
||||
$scoreBefore = isset($userBefore['score']) ? intval($userBefore['score']) : 0;
|
||||
$goldBefore = isset($userBefore['gold']) ? intval($userBefore['gold']) : 0;
|
||||
db('user')->where('id', $userId)->setInc('score', $registerScore);
|
||||
db('user')->where('id', $userId)->setInc('gold', $registerGold);
|
||||
// 注册后操作全部包裹在try-catch中,确保任何失败不影响注册结果
|
||||
try {
|
||||
db('coin_log')->insert([
|
||||
'user_id' => $userId,
|
||||
'coin_type' => 'score',
|
||||
'amount' => $registerScore,
|
||||
'before' => $scoreBefore,
|
||||
'after' => $scoreBefore + $registerScore,
|
||||
'action' => 'register_reward',
|
||||
'remark' => '新用户注册赠送积分',
|
||||
'createtime' => time(),
|
||||
]);
|
||||
} catch (\Exception $e) {}
|
||||
try {
|
||||
db('coin_log')->insert([
|
||||
'user_id' => $userId,
|
||||
'coin_type' => 'gold',
|
||||
'amount' => $registerGold,
|
||||
'before' => $goldBefore,
|
||||
'after' => $goldBefore + $registerGold,
|
||||
'action' => 'register_reward',
|
||||
'remark' => '新用户注册赠送金币',
|
||||
'createtime' => time(),
|
||||
]);
|
||||
} catch (\Exception $e) {}
|
||||
// 1. 更新邮箱验证状态
|
||||
$verification = db('user')->where('id', $userId)->value('verification');
|
||||
$verification = $verification ? json_decode($verification, true) : [];
|
||||
$verification['email'] = 1;
|
||||
db('user')->where('id', $userId)->update(['verification' => json_encode($verification)]);
|
||||
|
||||
// 2. 单独更新密保问题(避免字段不存在导致注册整体失败)
|
||||
if ($secQuestionValid) {
|
||||
try {
|
||||
db('user')->where('id', $userId)->update([
|
||||
'sec_question' => $secQuestion,
|
||||
'sec_answer' => $secAnswerHash,
|
||||
]);
|
||||
} catch (\Exception $e) {
|
||||
// sec_question/sec_answer字段可能不存在(未执行迁移),静默跳过
|
||||
}
|
||||
}
|
||||
|
||||
// 3. 注册赠送50积分
|
||||
$registerScore = 50;
|
||||
$registerGold = 50;
|
||||
$userBefore = db('user')->where('id', $userId)->find();
|
||||
$scoreBefore = isset($userBefore['score']) ? intval($userBefore['score']) : 0;
|
||||
db('user')->where('id', $userId)->setInc('score', $registerScore);
|
||||
|
||||
// 4. 注册赠送50金币(gold字段可能不存在,需容错)
|
||||
$goldBefore = 0;
|
||||
try {
|
||||
if (isset($userBefore['gold'])) {
|
||||
$goldBefore = intval($userBefore['gold']);
|
||||
db('user')->where('id', $userId)->setInc('gold', $registerGold);
|
||||
} else {
|
||||
// gold字段不存在,尝试添加
|
||||
try {
|
||||
db('user')->where('id', $userId)->update(['gold' => $registerGold]);
|
||||
} catch (\Exception $e2) {
|
||||
// 字段确实不存在,跳过金币赠送
|
||||
}
|
||||
}
|
||||
} catch (\Exception $e) {
|
||||
// gold字段操作异常,跳过
|
||||
}
|
||||
|
||||
// 5. 积分日志
|
||||
try {
|
||||
db('coin_log')->insert([
|
||||
'user_id' => $userId,
|
||||
'coin_type' => 'score',
|
||||
'amount' => $registerScore,
|
||||
'before' => $scoreBefore,
|
||||
'after' => $scoreBefore + $registerScore,
|
||||
'action' => 'register_reward',
|
||||
'remark' => '新用户注册赠送积分',
|
||||
'createtime' => time(),
|
||||
]);
|
||||
} catch (\Exception $e) {}
|
||||
|
||||
// 6. 金币日志
|
||||
try {
|
||||
db('coin_log')->insert([
|
||||
'user_id' => $userId,
|
||||
'coin_type' => 'gold',
|
||||
'amount' => $registerGold,
|
||||
'before' => $goldBefore,
|
||||
'after' => $goldBefore + $registerGold,
|
||||
'action' => 'register_reward',
|
||||
'remark' => '新用户注册赠送金币',
|
||||
'createtime' => time(),
|
||||
]);
|
||||
} catch (\Exception $e) {}
|
||||
|
||||
} catch (\Exception $e) {
|
||||
// 注册后操作失败不影响注册结果,用户已创建成功
|
||||
// 记录日志便于排查
|
||||
try {
|
||||
\think\Log::write('注册后操作异常(userId=' . $userId . '): ' . $e->getMessage(), 'error');
|
||||
} catch (\Exception $logErr) {}
|
||||
}
|
||||
|
||||
$token = $this->auth->getToken();
|
||||
$data = ['userinfo' => $this->auth->getUserinfo(), 'token' => $token];
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
# 闲言工具箱 · 用户安全接口文档
|
||||
|
||||
> 基础URL: `https://tools.wktyl.com`
|
||||
> 版本: v10.1.0 | 更新时间: 2026-05-14
|
||||
> 作者: AI Coder | 上次更新: v10.1.0 新增密保问题(secQuestions/changeSecQuestion); changepwd/changeemail/changemobile支持多验证方式; register支持可选密保
|
||||
> 版本: v10.2.1 | 更新时间: 2026-06-07
|
||||
> 作者: AI Coder | 上次更新: v10.2.1 修复注册接口500错误(gold字段缺失+密保问题写入容错)
|
||||
> **回执密钥**: Xy7kP9mL2qR4wS8v (HMAC-SHA256签名)
|
||||
|
||||
---
|
||||
@@ -40,6 +40,12 @@
|
||||
- 📲 二维码登录
|
||||
- 🗑️ 账号注销(申请/查询/取消)
|
||||
|
||||
**v10.2.1 变更**:
|
||||
- 🐛 修复注册接口500错误:`gold`字段缺失导致`setInc('gold')`抛出未捕获异常
|
||||
- 🐛 修复密保问题注册:`sec_question`/`sec_answer`不再通过`$extend`传入`User::create()`,改为注册成功后单独更新,避免字段不存在时注册整体失败
|
||||
- 🛡️ 注册后操作(验证状态/密保/积分/金币/日志)全部包裹在try-catch中,确保任何失败不影响注册结果
|
||||
- 📦 数据库迁移:`tool_user`表新增`gold`字段(migrate_v10_2.sql)
|
||||
|
||||
**v10.1.0 变更**:
|
||||
- 🆕 新增 **密保问题**:支持设置/修改密保问题,作为密码修改、邮箱/手机变更的替代验证方式
|
||||
- 🆕 新增接口:`secQuestions`(获取预置问题列表) / `changeSecQuestion`(修改/设置密保)
|
||||
|
||||
@@ -115,6 +115,15 @@ SELECT * FROM `tool_rank_record` WHERE `season_id` = 1 ORDER BY `rank` ASC LIMIT
|
||||
- 每日运势: GET /api/fortune/install
|
||||
- 云端暂存: POST /api/cloud_cache/install
|
||||
|
||||
### 3.5 数据库迁移记录
|
||||
| 版本 | 迁移文件 | 说明 | 执行状态 |
|
||||
|------|---------|------|---------|
|
||||
| v10.2.1 | migrate_v10_2.sql | tool_user新增gold字段 | ✅ 已执行 |
|
||||
| v10.1 | migrate_v10_1.sql | tool_user新增sec_question/sec_answer字段 | ✅ 已执行 |
|
||||
| v10.0 | migrate_v10.sql | user_device新增IP归属地字段 | ✅ 已执行 |
|
||||
| v9.2 | migrate_v9_2.sql | 新增user_deletion表 | ✅ 已执行 |
|
||||
| v9.0 | migrate_v9.sql | 新增user_device/qrcode_login表 | ✅ 已执行 |
|
||||
|
||||
## 四、接口更改流程
|
||||
|
||||
### 4.1 修改接口步骤
|
||||
|
||||
@@ -263,9 +263,9 @@
|
||||
<p><strong>闲言APP</strong> 软件介绍</p>
|
||||
<p>更新日期:2026年6月5日</p>
|
||||
<h2>一、关于闲言</h2>
|
||||
<p><strong>闲言APP</strong>是一款优雅的文字阅读与卡片创作应用,由<strong>弥勒市朋普镇微风暴网络科技工作室</strong>开发运营。我们致力于让文字阅读更纯粹,用文字点亮生活的每一刻。</p>
|
||||
<p><strong>闲言APP</strong>是一款优雅的灵感语录与卡片创作应用,由<strong>弥勒市朋普镇微风暴网络科技工作室</strong>开发运营。我们致力于让灵感语录更纯粹,用文字点亮生活的每一刻。</p>
|
||||
<h2>二、核心功能</h2>
|
||||
<h3>2.1 句子阅读与发现</h3>
|
||||
<h3>2.1 每日拾句与发现</h3>
|
||||
<ul>
|
||||
<li>每日精选句子推荐</li>
|
||||
<li>分类浏览:经典语录、诗词名句、人生哲理等</li>
|
||||
@@ -308,7 +308,7 @@
|
||||
<li>个人笔记管理</li>
|
||||
<li>文章创作与发布</li>
|
||||
<li>Markdown支持</li>
|
||||
<li>稍后阅读</li>
|
||||
<li>稍后收藏</li>
|
||||
</ul>
|
||||
<h3>2.7 更多功能</h3>
|
||||
<ul>
|
||||
@@ -319,7 +319,7 @@
|
||||
<li>节气提醒</li>
|
||||
<li>天气信息</li>
|
||||
<li>每日运势</li>
|
||||
<li>阅读报告</li>
|
||||
<li>使用报告</li>
|
||||
<li>知识图谱</li>
|
||||
</ul>
|
||||
<h2>三、平台支持</h2>
|
||||
@@ -335,11 +335,11 @@
|
||||
</ul>
|
||||
<h2>四、设计理念</h2>
|
||||
<h3>4.1 简约纯粹</h3>
|
||||
<p>去除冗余,专注于文字阅读体验</p>
|
||||
<p>去除冗余,专注于文字使用体验</p>
|
||||
<h3>4.2 iOS风格</h3>
|
||||
<p>遵循Apple Human Interface Guidelines,打造统一优雅的界面风格</p>
|
||||
<h3>4.3 个性化定制</h3>
|
||||
<p>丰富的主题、字体、壁纸选项,打造专属于你的阅读空间</p>
|
||||
<p>丰富的主题、字体、壁纸选项,打造专属于你的创作空间</p>
|
||||
<h3>4.4 隐私优先</h3>
|
||||
<p>数据本地存储优先,<span class="highlight">最小化信息收集</span>,尊重用户隐私</p>
|
||||
<h2>五、技术特色</h2>
|
||||
@@ -370,7 +370,7 @@
|
||||
<p>Version: V6.6</p>
|
||||
<p>Updated: June 5, 2026</p>
|
||||
<h2>I. App Overview</h2>
|
||||
<p><strong>Xianyan</strong> is an elegant sentence reading and card creation app that illuminates every moment of your life with words.</p>
|
||||
<p><strong>Xianyan</strong> is an elegant quote discovery and card creation app that illuminates every moment of your life with words.</p>
|
||||
<h2>II. Core Features</h2>
|
||||
<h3>2.1 Sentence Browsing</h3>
|
||||
<ul>
|
||||
|
||||
@@ -285,7 +285,7 @@
|
||||
<h3>2.1 收藏与稍后读</h3>
|
||||
<ul>
|
||||
<li>看到喜欢的句子,点击❤️收藏</li>
|
||||
<li>长按句子可添加到"稍后阅读"列表</li>
|
||||
<li>长按句子可添加到"稍后收藏"列表</li>
|
||||
<li>在"我的 → 收藏"中查看所有收藏内容</li>
|
||||
</ul>
|
||||
<h3>2.2 卡片创作</h3>
|
||||
@@ -340,7 +340,7 @@
|
||||
<li>支持富文本编辑</li>
|
||||
<li>可添加标签分类管理</li>
|
||||
</ul>
|
||||
<h3>4.3 阅读报告</h3>
|
||||
<h3>4.3 使用报告</h3>
|
||||
<ul>
|
||||
<li>自动记录阅读数据</li>
|
||||
<li>生成周报/月报</li>
|
||||
@@ -450,7 +450,7 @@
|
||||
<h3>4.1 Use the search feature to quickly find sentences</h3>
|
||||
<h3>4.2 Long-press a sentence for more options</h3>
|
||||
<h3>4.3 Use widgets for quick access on your home screen</h3>
|
||||
<h3>4.4 Enable dark mode for comfortable night reading</h3>
|
||||
<h3>4.4 Enable dark mode for comfortable night use</h3>
|
||||
<h2>V. Help and Feedback</h2>
|
||||
<h3>5.1 If you encounter problems:</h3>
|
||||
<ul>
|
||||
|
||||
@@ -263,7 +263,7 @@
|
||||
<p><strong>闲言APP</strong> 开发团队</p>
|
||||
<p>更新日期:2026年5月20日</p>
|
||||
<h2>一、团队介绍</h2>
|
||||
<p><strong>闲言APP</strong>由微风暴工作室独立开发运营。我们是一支热爱文字、追求极致体验的团队,致力于用技术让文字阅读更纯粹。</p>
|
||||
<p><strong>闲言APP</strong>由微风暴工作室独立开发运营。我们是一支热爱文字、追求极致体验的团队,致力于用技术让灵感语录更纯粹。</p>
|
||||
<h2>二、团队信息</h2>
|
||||
<ul>
|
||||
<li>工作室全称:**弥勒市朋普镇微风暴网络科技工作室**</li>
|
||||
@@ -296,8 +296,8 @@
|
||||
<ul>
|
||||
<li>应用名称:闲言</li>
|
||||
<li>英文名称:Xianyan</li>
|
||||
<li>应用标语:文字阅读更纯粹</li>
|
||||
<li>应用描述:一款优雅的句子阅读与卡片创作应用,用文字点亮生活的每一刻</li>
|
||||
<li>应用标语:灵感语录更纯粹</li>
|
||||
<li>应用描述:一款优雅的每日拾句与卡片创作应用,用文字点亮生活的每一刻</li>
|
||||
<li>软件著作权登记号:2020SR0421982</li>
|
||||
</ul>
|
||||
<div class="copyright-cert">
|
||||
@@ -355,11 +355,11 @@
|
||||
<p>Version: V6.5</p>
|
||||
<p>Updated: May 20, 2026</p>
|
||||
<h2>I. About the Team</h2>
|
||||
<p><strong>Mile City Pengpu Town Weifengbao Network Technology Studio</strong> is a small team passionate about technology and literature. We are committed to creating a pure, elegant reading and creation space for users.</p>
|
||||
<p><strong>Mile City Pengpu Town Weifengbao Network Technology Studio</strong> is a small team passionate about technology and literature. We are committed to creating a pure, elegant inspiration and creation space for users.</p>
|
||||
<p>Unified Social Credit Code: 92532526MA6PCX153W</p>
|
||||
<h2>II. Our Mission</h2>
|
||||
<ul>
|
||||
<li>Make reading more pure</li>
|
||||
<li>Make inspiration more pure</li>
|
||||
<li>Make creation simpler</li>
|
||||
<li>Make sharing more beautiful</li>
|
||||
<li>Protect user privacy with technology</li>
|
||||
@@ -391,8 +391,8 @@
|
||||
<ul>
|
||||
<li>App Name: Xianyan</li>
|
||||
<li>English Name: Xianyan</li>
|
||||
<li>App Tagline: Pure reading through words</li>
|
||||
<li>App Description: An elegant sentence reading and card creation app that illuminates every moment of your life with words</li>
|
||||
<li>App Tagline: Inspiring quotes, pure and simple</li>
|
||||
<li>App Description: An elegant quote discovery and card creation app that illuminates every moment of your life with words</li>
|
||||
<li>Software Copyright Registration Number: 2020SR0421982</li>
|
||||
</ul>
|
||||
<div class="copyright-cert">
|
||||
|
||||
@@ -279,7 +279,7 @@
|
||||
<h2>二、会员权益</h2>
|
||||
<h3>2.1 基础权益(所有用户)</h3>
|
||||
<ul>
|
||||
<li>每日句子阅读与发现</li>
|
||||
<li>每日拾句与发现</li>
|
||||
<li>基础卡片创作功能</li>
|
||||
<li>诗词推荐与欣赏</li>
|
||||
<li>笔记与收藏功能</li>
|
||||
|
||||
@@ -288,12 +288,12 @@
|
||||
<li>设备指纹信息:设备唯一标识符(device_id)、User-Agent,用于设备识别和安全验证</li>
|
||||
<li>IP地址信息:您的IP地址及IP归属地,用于安全验证、异常登录检测和城市级位置服务</li>
|
||||
<li>互动行为信息:您的浏览记录、搜索关键词、点赞、收藏、分享、评论等互动行为,用于个性化推荐和服务优化</li>
|
||||
<li>阅读行为信息:阅读时长、阅读进度,用于阅读统计和个性化推荐</li>
|
||||
<li>使用行为信息:浏览时长、浏览进度,用于使用统计和个性化推荐</li>
|
||||
</ul>
|
||||
<h3>1.2 您主动提供的信息</h3>
|
||||
<ul>
|
||||
<li>账号信息:注册时提供的手机号/邮箱、昵称、头像</li>
|
||||
<li>个人偏好:主题设置、字体大小、阅读偏好等个性化配置</li>
|
||||
<li>个人偏好:主题设置、字体大小、使用偏好等个性化配置</li>
|
||||
<li>用户内容:您发布的笔记、文章、评论等</li>
|
||||
<li>安全信息:密保问题和答案(加密存储),用于账号安全验证</li>
|
||||
</ul>
|
||||
@@ -308,7 +308,7 @@
|
||||
<p>我们收集的信息仅用于以下目的:</p>
|
||||
<h3>2.1 核心服务</h3>
|
||||
<ul>
|
||||
<li>提供句子阅读、卡片创作、诗词推荐等核心功能</li>
|
||||
<li>提供每日拾句、卡片创作、诗词推荐等核心功能</li>
|
||||
<li>个性化内容推荐和展示</li>
|
||||
<li>账号注册、登录与安全验证</li>
|
||||
</ul>
|
||||
@@ -333,7 +333,7 @@
|
||||
<th>拒绝提供的影响</th>
|
||||
</tr></thead><tbody>
|
||||
<tr>
|
||||
<td>句子阅读与发现</td>
|
||||
<td>每日拾句与发现</td>
|
||||
<td>设备信息、应用信息</td>
|
||||
<td>是</td>
|
||||
<td>无法使用阅读功能</td>
|
||||
@@ -428,7 +428,7 @@
|
||||
<ul>
|
||||
<li>本地存储:个人偏好设置存储在应用沙盒的 SharedPreferences 和 Hive 数据库中</li>
|
||||
<li>缓存数据:图片缓存、内容缓存存储在应用临时目录,可随时清理</li>
|
||||
<li>结构化数据:收藏、笔记、阅读历史等存储在本地 SQLite 数据库</li>
|
||||
<li>结构化数据:收藏、笔记、浏览历史等存储在本地 SQLite 数据库</li>
|
||||
<li>服务端数据:账号信息、用户资料、设备信息、互动记录、搜索历史、用户偏好画像等存储在云服务器MySQL数据库中</li>
|
||||
<li>云端暂存:加密文件通过云端暂存服务在设备间传输,采用端到端加密</li>
|
||||
</ul>
|
||||
@@ -797,7 +797,7 @@
|
||||
<li>We currently do not engage in cross-border data transfer</li>
|
||||
<li>Local storage: personal preferences are stored in the app sandbox's SharedPreferences and Hive database</li>
|
||||
<li>Cached data: image cache and content cache are stored in the app's temporary directory and can be cleared at any time</li>
|
||||
<li>Structured data: favorites, notes, reading history, etc. are stored in the local SQLite database</li>
|
||||
<li>Structured data: favorites, notes, browse history, etc. are stored in the local SQLite database</li>
|
||||
<li>Server data: account information, user profiles, device information, interaction records, search history, user preference profiles, etc. are stored in the cloud server MySQL database</li>
|
||||
<li>Cloud staging: encrypted files are transferred between devices through the cloud staging service, using end-to-end encryption</li>
|
||||
</ul>
|
||||
|
||||
@@ -274,9 +274,9 @@
|
||||
<p>本协议被视为您与我们之间签订的《用户服务协议》的补充条款,与其构成统一整体。补充协议与本协议存在冲突时,以<span class="highlight">补充协议</span>为准。</p>
|
||||
<h2>二、服务内容</h2>
|
||||
<h3>2.1 服务概述</h3>
|
||||
<p><strong>闲言APP</strong>是一款文字阅读与卡片创作应用,提供以下核心服务:</p>
|
||||
<p><strong>闲言APP</strong>是一款灵感语录与卡片创作应用,提供以下核心服务:</p>
|
||||
<ul>
|
||||
<li>句子阅读与发现</li>
|
||||
<li>每日拾句与发现</li>
|
||||
<li>卡片创作与分享</li>
|
||||
<li>诗词推荐与欣赏</li>
|
||||
<li>AI对话与智能助手(规划中)</li>
|
||||
@@ -387,7 +387,7 @@
|
||||
<h3>1.2 By registering, logging in, or using this app, you indicate that you have read, understood, and agree to be bound by all terms of this Agreement</h3>
|
||||
<h3>1.3 We require you to actively confirm your consent to this Agreement and do not use "continued use implies consent" as the sole basis for consent</h3>
|
||||
<h2>II. Service Description</h2>
|
||||
<h3>2.1 Xianyan APP is a sentence reading and card creation application that provides the following features:</h3>
|
||||
<h3>2.1 Xianyan APP is a quote discovery and card creation application that provides the following features:</h3>
|
||||
<ul>
|
||||
<li>Sentence browsing and collection</li>
|
||||
<li>Card creation and sharing</li>
|
||||
|
||||
Reference in New Issue
Block a user