Files
xianyan/docs/toolsapi/agreements/dev-team.html
Developer adfa0af825 chore: 汇总2026-05-30全量更新
### 详细变更:
1.  **文档与配置**:更新AGENTS.md添加命令超时约束,升级Rive依赖至0.14.7并替换平台插件引用
2.  **UI优化**:重构AppInfo页面布局、移除图表冗余配置、锁定部分系统设置项
3.  **功能增强**:
    - 新增工具面板拖拽状态管理与介绍弹窗
    - 新增进度页面编辑/重排/清空用户进度功能
    - 新增摇一摇路由作用域拦截逻辑
4.  **体验优化**:
    - 统一外部链接跳转弹窗,添加文件打开确认逻辑
    - 修复设备卡片IP溢出、Android权限声明问题
    - 后台任务初始化增加协议校验
5.  **代码重构**:拆分工具面板配置、拖拽逻辑与动画参数,优化状态管理代码
6.  **工具脚本**:新增协议文件上传脚本
2026-05-30 05:29:50 +08:00

487 lines
18 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>开发团队 - 闲言APP</title>
<style>
:root {
--primary: #6C5CE7;
--primary-light: #A29BFE;
--primary-dark: #5A4BD1;
--bg: #F2F2F7;
--bg-card: #FFFFFF;
--text: #1C1C1E;
--text-secondary: #8E8E93;
--text-tertiary: #AEAEB2;
--border: #E5E5EA;
--highlight-bg: rgba(108, 92, 231, 0.08);
--shadow-sm: 0 1px 3px rgba(0,0,0,0.04), 0 1px 2px rgba(0,0,0,0.06);
--shadow-md: 0 4px 12px rgba(0,0,0,0.08);
--radius-sm: 8px;
--radius-md: 12px;
--radius-lg: 16px;
--radius-xl: 20px;
--font-family: -apple-system, BlinkMacSystemFont, 'SF Pro Display', 'SF Pro Text', 'Helvetica Neue', 'PingFang SC', 'Microsoft YaHei', sans-serif;
}
* { margin: 0; padding: 0; box-sizing: border-box; }
body {
font-family: var(--font-family);
background: var(--bg);
color: var(--text);
line-height: 1.8;
-webkit-font-smoothing: antialiased;
}
.lang-switch {
position: fixed;
top: 16px;
right: 16px;
z-index: 100;
display: flex;
background: rgba(255,255,255,0.85);
backdrop-filter: blur(20px);
-webkit-backdrop-filter: blur(20px);
border-radius: 20px;
padding: 3px;
box-shadow: 0 2px 12px rgba(0,0,0,0.1);
border: 0.5px solid rgba(108, 92, 231, 0.15);
}
.lang-btn {
padding: 6px 14px;
border: none;
background: transparent;
color: var(--text-secondary);
font-size: 13px;
font-weight: 500;
cursor: pointer;
border-radius: 17px;
transition: all 0.25s ease;
font-family: var(--font-family);
}
.lang-btn.active {
background: var(--primary);
color: #FFF;
box-shadow: 0 2px 8px rgba(108, 92, 231, 0.3);
}
.lang-btn:hover:not(.active) {
background: rgba(108, 92, 231, 0.08);
color: var(--primary);
}
.header {
background: linear-gradient(135deg, #6C5CE7 0%, #5A4BD1 50%, #4A3DB5 100%);
padding: 48px 20px 44px;
text-align: center;
position: relative;
overflow: hidden;
}
.header::before {
content: '';
position: absolute;
top: -50%;
left: -50%;
width: 200%;
height: 200%;
background: radial-gradient(circle at 30% 50%, rgba(255,255,255,0.1) 0%, transparent 50%);
pointer-events: none;
}
.header::after {
content: '';
position: absolute;
bottom: 0;
left: 0;
right: 0;
height: 32px;
background: var(--bg);
border-radius: var(--radius-xl) var(--radius-xl) 0 0;
}
.header-icon { font-size: 40px; margin-bottom: 10px; display: block; }
.header h1 { color: #FFF; font-size: 24px; font-weight: 700; letter-spacing: -0.3px; margin-bottom: 4px; }
.header p { color: rgba(255,255,255,0.75); font-size: 14px; }
.container { max-width: 800px; margin: 0 auto; padding: 20px 16px 40px; }
.content-card {
background: var(--bg-card);
border-radius: var(--radius-lg);
padding: 28px 24px;
margin-bottom: 20px;
box-shadow: var(--shadow-sm);
}
h1 {
font-size: 22px;
font-weight: 700;
color: var(--text);
margin: 28px 0 12px;
}
h2 {
font-size: 20px;
font-weight: 700;
color: var(--text);
margin: 32px 0 16px;
padding-bottom: 10px;
border-bottom: 2px solid var(--primary);
display: inline-block;
}
h3 {
font-size: 17px;
font-weight: 600;
color: var(--text);
margin: 24px 0 12px;
}
p {
font-size: 15px;
color: var(--text);
margin-bottom: 12px;
line-height: 1.8;
}
p.note {
background: rgba(108, 92, 231, 0.06);
border-left: 3px solid var(--primary);
padding: 12px 16px;
border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
margin: 12px 0;
}
.highlight {
color: var(--primary);
font-weight: 600;
background: var(--highlight-bg);
padding: 1px 6px;
border-radius: 4px;
}
.copyright-cert {
margin: 20px 0;
text-align: center;
padding: 20px;
background: rgba(108, 92, 231, 0.04);
border-radius: var(--radius-md);
border: 1px solid rgba(108, 92, 231, 0.12);
}
.cert-image {
max-width: 100%;
max-height: 500px;
border-radius: var(--radius-sm);
box-shadow: var(--shadow-md);
}
.cert-caption {
margin-top: 12px;
font-size: 14px;
color: var(--text-secondary);
font-weight: 500;
}
ul {
list-style: none;
padding: 0;
margin: 0 0 16px;
}
li {
font-size: 15px;
color: var(--text);
padding: 6px 0 6px 20px;
position: relative;
line-height: 1.7;
}
li::before {
content: '\2022';
color: var(--primary);
font-weight: 700;
position: absolute;
left: 4px;
top: 6px;
}
table {
width: 100%;
border-collapse: collapse;
margin: 16px 0;
font-size: 14px;
}
th {
background: var(--primary);
color: #FFF;
padding: 10px 12px;
text-align: left;
font-weight: 600;
font-size: 13px;
}
td {
padding: 10px 12px;
border-bottom: 0.5px solid var(--border);
line-height: 1.6;
}
tr:hover td {
background: rgba(108, 92, 231, 0.04);
}
.back-link {
display: inline-flex;
align-items: center;
gap: 6px;
color: var(--primary);
text-decoration: none;
font-size: 15px;
font-weight: 500;
padding: 12px 0;
transition: opacity 0.2s;
}
.back-link:hover { opacity: 0.7; }
.footer {
text-align: center;
padding: 24px 20px 40px;
color: var(--text-secondary);
font-size: 13px;
line-height: 1.8;
border-top: 0.5px solid var(--border);
margin-top: 20px;
}
.footer .company { font-weight: 500; color: var(--text); margin-bottom: 4px; }
@media (max-width: 640px) {
.lang-switch { top: 10px; right: 10px; }
.lang-btn { padding: 5px 10px; font-size: 12px; }
.header { padding: 40px 16px 36px; }
.header h1 { font-size: 20px; }
.container { padding: 16px 12px 32px; }
.content-card { padding: 20px 16px; }
h2 { font-size: 18px; }
h3 { font-size: 16px; }
p, li { font-size: 14px; }
table { font-size: 12px; }
th, td { padding: 8px 6px; }
}
</style>
</head>
<body>
<div class="lang-switch">
<button class="lang-btn active" onclick="switchLang('zh')" id="btn-zh">中文</button>
<button class="lang-btn" onclick="switchLang('en')" id="btn-en">EN</button>
</div>
<div class="header">
<span class="header-icon">💻</span>
<h1 id="header-title">开发团队</h1>
<p id="header-subtitle">开发团队信息与联系方式</p>
</div>
<div class="container">
<div class="content-card">
<div id="content-zh" class="lang-content">
<p><strong>闲言APP</strong> 开发团队</p>
<p>更新日期2026年5月20日</p>
<h2>一、团队介绍</h2>
<p><strong>闲言APP</strong>由微风暴工作室独立开发运营。我们是一支热爱文字、追求极致体验的团队,致力于用技术让文字阅读更纯粹。</p>
<h2>二、团队信息</h2>
<ul>
<li>工作室全称:**弥勒市朋普镇微风暴网络科技工作室**</li>
<li>统一社会信用代码92532526MA6PCX153W</li>
<li>品牌名称:微风暴工作室</li>
<li>负责人:李先生</li>
</ul>
<h2>三、联系方式</h2>
<h3>3.1 商务合作</h3>
<ul>
<li>邮箱2821981550@qq.com</li>
</ul>
<h3>3.2 用户反馈</h3>
<ul>
<li>应用内反馈:我的 → 关于 → 用户反馈</li>
<li>邮箱2821981550@qq.com</li>
</ul>
<h3>3.3 其他邮箱</h3>
<ul>
<li>gg@0gg.cc</li>
<li>ad@avefs.com</li>
<li>2821981550@qq.com</li>
<li>2572560133@qq.com</li>
</ul>
<h3>3.4 通信地址</h3>
<ul>
<li>云南省昆明市西山区滇池度假区碧鸡街道车家壁513号</li>
</ul>
<h2>四、应用信息</h2>
<ul>
<li>应用名称:闲言</li>
<li>英文名称Xianyan</li>
<li>应用标语:文字阅读更纯粹</li>
<li>应用描述:一款优雅的句子阅读与卡片创作应用,用文字点亮生活的每一刻</li>
<li>软件著作权登记号2020SR0421982</li>
</ul>
<div class="copyright-cert">
<img src="rz.png" alt="软件著作权登记证书" class="cert-image" />
<p class="cert-caption">软件著作权登记证书</p>
</div>
<h2>五、平台支持</h2>
<p><strong>闲言APP</strong>致力于为用户提供跨平台一致的使用体验,当前支持以下平台:</p>
<ul>
<li>📱 Android — 安卓手机和平板</li>
<li>🍎 iOS — iPhone 和 iPad</li>
<li>🌐 鸿蒙 — HarmonyOS 设备</li>
<li>💻 macOS — Mac 电脑</li>
<li>🖥️ Windows — Windows 电脑</li>
<li>🐧 Linux — Linux 电脑</li>
<li>🌍 Web — 网页浏览器</li>
</ul>
<h2>六、技术栈</h2>
<ul>
<li>框架Flutter</li>
<li>状态管理Riverpod</li>
<li>路由GoRouter</li>
<li>本地存储SQLite + SharedPreferences</li>
<li>网络通信Dio</li>
<li>UI风格iOS Cupertino + 液态玻璃效果</li>
</ul>
<h2>七、开源致谢</h2>
<p><strong>闲言APP</strong>的开发离不开开源社区的支持,感谢所有开源项目的贡献者。详细的开源许可信息请查看:关于 → 开发者 → 开源许可。</p>
<h2>八、法律声明</h2>
<ul>
<li>本应用由**弥勒市朋普镇微风暴网络科技工作室**依法开发运营</li>
<li>本应用遵守<span class="highlight">中华人民共和国相关法律法规</span></li>
<li>本应用的<span class="highlight">知识产权</span>归**弥勒市朋普镇微风暴网络科技工作室**所有</li>
<li>未经授权,任何人不得复制、修改、传播本应用的任何部分</li>
</ul>
<h2>九、隐私与安全</h2>
<p>我们高度重视用户隐私和数据安全:</p>
<ul>
<li>遵循<span class="highlight">最小必要原则</span>收集信息</li>
<li>数据本地存储优先</li>
<li>传输过程<span class="highlight">端到端加密</span></li>
<li>定期安全评估与漏洞修复</li>
<li>详细的隐私政策请参阅《隐私政策》</li>
</ul>
<h2>十、加入我们</h2>
<p>如果你也热爱文字和技术,欢迎加入我们!</p>
<ul>
<li>邮箱2821981550@qq.com</li>
<li>地址:云南省昆明市</li>
</ul>
<p>© 2026 <strong>弥勒市朋普镇微风暴网络科技工作室</strong></p>
</div>
<div id="content-en" class="lang-content" style="display:none;">
<p><strong>Xianyan APP</strong> — Development Team</p>
<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>Unified Social Credit Code: 92532526MA6PCX153W</p>
<h2>II. Our Mission</h2>
<ul>
<li>Make reading more pure</li>
<li>Make creation simpler</li>
<li>Make sharing more beautiful</li>
<li>Protect user privacy with technology</li>
</ul>
<h2>III. Technical Architecture</h2>
<h3>3.1 Development Framework</h3>
<ul>
<li>Built with Flutter for cross-platform support</li>
<li>Local-first data storage</li>
<li>Cloud sync support</li>
</ul>
<h3>3.2 Data Storage</h3>
<ul>
<li>User data is stored locally on the device</li>
<li>Cloud sync is optional and encrypted</li>
<li>We do not access your private data</li>
</ul>
<h3>3.3 Open Source</h3>
<ul>
<li>We actively use and contribute to open-source projects</li>
<li>Some components of the app are based on open-source projects</li>
<li>We respect and comply with open-source licenses</li>
</ul>
<h3>3.4 Mailing Address</h3>
<ul>
<li>Dianchi Resort Area, Xishan District, Kunming, Yunnan Province, China (Bijie Subdistrict, Chejiabi No. 513)</li>
</ul>
<h2>IV. App Information</h2>
<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>Software Copyright Registration Number: 2020SR0421982</li>
</ul>
<div class="copyright-cert">
<img src="rz.png" alt="软件著作权登记证书" class="cert-image" />
<p class="cert-caption">Software Copyright Registration Certificate</p>
</div>
<h2>V. Platform Support</h2>
<ul>
<li>iOS 12.0+</li>
<li>Android 6.0+</li>
<li>iPadOS 13.0+</li>
<li>macOS 11.0+</li>
<li>Web (Chrome, Safari, Firefox, Edge)</li>
</ul>
<h2>VI. Contact Us</h2>
<ul>
<li>Email: 2821981550@qq.com</li>
<li>Mailing address: Dianchi Resort Area, Xishan District, Kunming, Yunnan Province, China (Bijie Subdistrict, Chejiabi No. 513)</li>
</ul>
<h2>VII. Join Us</h2>
<p>If you also love words and technology, welcome to join us!</p>
<ul>
<li>Email: 2821981550@qq.com</li>
<li>Address: Kunming, Yunnan Province, China</li>
</ul>
<p>© 2026 <strong>Mile City Pengpu Town Weifengbao Network Technology Studio</strong></p>
</div>
</div>
<a href="index.html" class="back-link" id="back-link">← 返回协议列表</a>
</div>
<div class="footer" id="footer">
<div class="company" id="footer-company">弥勒市朋普镇微风暴网络科技工作室</div>
<div id="footer-contact">📧 2821981550@qq.com &nbsp;|&nbsp; 📧 2572560133@qq.com &nbsp;|&nbsp; 📍 云南省昆明市西山区滇池度假区碧鸡街道车家壁513号</div>
<div style="margin-top: 8px;" id="footer-credit">统一社会信用代码92532526MA6PCX153W</div>
<div style="margin-top: 4px;" id="footer-icp">滇ICP备2022000863号-18A</div>
<div style="margin-top: 4px; color: var(--text-tertiary);">© 2026 Xianyan. All rights reserved.</div>
</div>
<script>
const DATA = {
zh: {
title: '开发团队',
subtitle: '开发团队信息与联系方式',
backLink: '← 返回协议列表',
company: '弥勒市朋普镇微风暴网络科技工作室',
contact: '📧 2821981550@qq.com &nbsp;|&nbsp; 📧 2572560133@qq.com &nbsp;|&nbsp; 📍 云南省昆明市西山区滇池度假区碧鸡街道车家壁513号',
credit: '统一社会信用代码92532526MA6PCX153W',
icp: '滇ICP备2022000863号-18A'
},
en: {
title: 'Development Team',
subtitle: 'Development team information and contact',
backLink: '← Back to Agreement List',
company: 'Mile City Pengpu Town Weifengbao Network Technology Studio',
contact: '📧 2821981550@qq.com &nbsp;|&nbsp; <20> 2572560133@qq.com &nbsp;|&nbsp; <20>📍 Dianchi Resort, Xishan District, Kunming, Yunnan, China',
credit: 'Unified Social Credit Code: 92532526MA6PCX153W',
icp: 'ICP License: 滇ICP备2022000863号-18A'
}
};
function switchLang(lang) {
document.getElementById('content-zh').style.display = lang === 'zh' ? 'block' : 'none';
document.getElementById('content-en').style.display = lang === 'en' ? 'block' : 'none';
document.getElementById('header-title').textContent = DATA[lang].title;
document.getElementById('header-subtitle').textContent = DATA[lang].subtitle;
document.getElementById('back-link').textContent = DATA[lang].backLink;
document.getElementById('footer-company').textContent = DATA[lang].company;
document.getElementById('footer-contact').innerHTML = DATA[lang].contact;
document.getElementById('footer-credit').textContent = DATA[lang].credit;
document.getElementById('footer-icp').textContent = DATA[lang].icp;
document.getElementById('btn-zh').className = 'lang-btn' + (lang === 'zh' ? ' active' : '');
document.getElementById('btn-en').className = 'lang-btn' + (lang === 'en' ? ' active' : '');
document.documentElement.lang = lang === 'zh' ? 'zh-CN' : 'en';
const url = new URL(window.location);
if (lang === 'en') {
url.searchParams.set('lang', 'en');
} else {
url.searchParams.delete('lang');
}
history.replaceState(null, '', url);
}
(function() {
const params = new URLSearchParams(window.location.search);
const lang = params.get('lang');
if (lang === 'en') switchLang('en');
})();
</script>
</body>
</html>