Files
2026-06-03 10:27:17 +08:00

900 lines
70 KiB
HTML
Raw Permalink 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" />
<title>法律条款 - Chookoo</title>
<style>
:root {
color-scheme: light;
--bg: #f5f7fb;
--text: #0f172a;
--muted: #5b6472;
--primary: #2f6bff;
--primary-weak: #e8f1ff;
--card: #ffffff;
--line: #e5e7eb;
--shadow: 0 20px 60px rgba(15, 23, 42, 0.08);
}
* { box-sizing: border-box; margin: 0; padding: 0; }
html { overflow-y: scroll; overflow-x: hidden; }
body {
font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Noto Sans", "Helvetica Neue", Arial, sans-serif;
background: var(--bg);
color: var(--text);
width: 100%;
overflow-x: hidden;
line-height: 1.6;
}
a { color: inherit; text-decoration: none; }
#pageContent {
min-width: 1280px;
margin: 0;
padding: 0;
}
/* 导航栏 */
.navbar {
position: fixed;
top: 0;
left: 0;
right: 0;
z-index: 1000;
opacity: 0;
background: rgba(255, 255, 255, 0.92);
backdrop-filter: blur(20px);
border-bottom: 1px solid rgba(0, 0, 0, 0.06);
}
.navbar-inner {
position: relative;
display: flex;
align-items: center;
justify-content: space-between;
height: 64px;
padding: 0 32px;
max-width: 1400px;
margin: 0 auto;
}
.navbar-menu {
display: flex;
align-items: center;
gap: 8px;
position: absolute;
left: 50%;
transform: translateX(-50%);
}
.navbar-logo {
display: flex;
align-items: center;
text-decoration: none;
}
.navbar-logo img {
height: 40px;
width: auto;
}
.navbar-link {
padding: 8px 16px;
font-size: 14px;
font-weight: 500;
color: var(--muted);
text-decoration: none;
border-radius: 8px;
transition: all 0.2s ease;
}
.navbar-link:hover {
color: var(--text);
background: rgba(0, 0, 0, 0.04);
text-decoration: none;
}
.navbar-link.active {
color: var(--primary);
background: var(--primary-weak);
}
.navbar-actions {
display: flex;
align-items: center;
gap: 12px;
}
.navbar-btn {
display: flex;
align-items: center;
justify-content: center;
width: 40px;
height: 40px;
border-radius: 10px;
background: transparent;
border: none;
cursor: pointer;
color: var(--muted);
transition: all 0.2s ease;
}
.navbar-btn:hover {
background: rgba(0, 0, 0, 0.04);
color: var(--text);
}
.navbar-btn svg {
width: 20px;
height: 20px;
}
.navbar-cta {
padding: 10px 20px;
font-size: 14px;
font-weight: 600;
color: #fff;
background: linear-gradient(135deg, var(--primary) 0%, #06b6d4 100%);
border: none;
border-radius: 10px;
cursor: pointer;
transition: all 0.2s ease;
text-decoration: none;
}
.navbar-cta:hover {
transform: translateY(-1px);
box-shadow: 0 4px 12px rgba(47, 107, 255, 0.3);
}
.mobile-menu-btn {
display: none;
}
.lang-select-hero {
background: transparent;
border: none;
font-size: 13px;
color: var(--muted);
cursor: pointer;
padding: 8px;
}
/* 主内容区 */
.main-content {
padding-top: 100px;
padding-bottom: 80px;
min-height: 100vh;
}
.container {
width: 1000px;
max-width: 1000px;
margin: 0 auto;
padding: 0 24px;
}
/* 搜索区域 */
.search-section {
text-align: center;
margin-bottom: 48px;
}
.search-title {
font-size: 32px;
font-weight: 700;
margin-bottom: 8px;
color: var(--text);
}
.search-subtitle {
font-size: 16px;
color: var(--muted);
margin-bottom: 32px;
}
.search-box {
position: relative;
max-width: 560px;
margin: 0 auto;
}
.search-input {
width: 100%;
padding: 16px 24px 16px 52px;
font-size: 16px;
border: 2px solid var(--line);
border-radius: 16px;
background: var(--card);
outline: none;
transition: all 0.3s;
}
.search-input:focus {
border-color: var(--primary);
box-shadow: 0 0 0 4px rgba(47, 107, 255, 0.1);
}
.search-icon {
position: absolute;
left: 20px;
top: 50%;
transform: translateY(-50%);
color: var(--muted);
}
.search-results {
position: absolute;
top: calc(100% + 8px);
left: 0;
right: 0;
background: var(--card);
border-radius: 12px;
box-shadow: 0 8px 32px rgba(0,0,0,0.12);
max-height: 400px;
overflow-y: auto;
display: none;
z-index: 100;
}
.search-results.active { display: block; }
.search-result-item {
padding: 14px 20px;
cursor: pointer;
border-bottom: 1px solid var(--line);
transition: background 0.2s;
}
.search-result-item:last-child { border-bottom: none; }
.search-result-item:hover { background: var(--primary-weak); }
.search-result-title {
font-size: 15px;
font-weight: 500;
margin-bottom: 4px;
}
.search-result-category {
font-size: 12px;
color: var(--muted);
}
.search-no-result {
padding: 24px;
text-align: center;
color: var(--muted);
}
/* 分类标签 */
.category-tabs {
display: flex;
gap: 12px;
justify-content: center;
flex-wrap: wrap;
margin-bottom: 40px;
}
.category-tab {
padding: 10px 20px;
font-size: 14px;
font-weight: 500;
border-radius: 999px;
background: var(--card);
border: 1px solid var(--line);
cursor: pointer;
transition: all 0.2s;
}
.category-tab:hover {
border-color: var(--primary);
color: var(--primary);
}
.category-tab.active {
background: var(--primary);
border-color: var(--primary);
color: #fff;
}
/* 文章分类区块 */
.articles-section {
margin-bottom: 48px;
}
.section-header {
display: flex;
align-items: center;
gap: 12px;
margin-bottom: 20px;
cursor: pointer;
}
.section-icon {
width: 44px;
height: 44px;
display: flex;
align-items: center;
justify-content: center;
border-radius: 12px;
font-size: 20px;
}
.section-icon.privacy { background: linear-gradient(135deg, #dbeafe, #bfdbfe); }
.section-icon.terms { background: linear-gradient(135deg, #fef3c7, #fde68a); }
.section-icon.cookies { background: linear-gradient(135deg, #d1fae5, #a7f3d0); }
.section-icon.warranty { background: linear-gradient(135deg, #e0e7ff, #c7d2fe); }
.section-title {
font-size: 20px;
font-weight: 600;
flex: 1;
}
.section-count {
font-size: 13px;
color: var(--muted);
background: var(--bg);
padding: 4px 12px;
border-radius: 999px;
}
.section-toggle {
color: var(--muted);
transition: transform 0.3s;
}
.section-header.collapsed .section-toggle {
transform: rotate(-90deg);
}
/* 文章列表 */
.article-list {
display: grid;
gap: 12px;
padding-left: 56px;
}
.article-list.hidden { display: none; }
.article-item {
display: flex;
align-items: center;
gap: 12px;
padding: 16px 20px;
background: var(--card);
border-radius: 12px;
border: 1px solid var(--line);
cursor: pointer;
transition: all 0.2s;
}
.article-item:hover {
border-color: var(--primary);
box-shadow: 0 4px 12px rgba(47, 107, 255, 0.1);
transform: translateX(4px);
}
.article-item svg {
color: var(--primary);
flex-shrink: 0;
}
.article-title {
font-size: 15px;
font-weight: 500;
flex: 1;
}
.article-arrow {
color: var(--muted);
opacity: 0;
transition: opacity 0.2s;
}
.article-item:hover .article-arrow {
opacity: 1;
}
/* 文章详情页 */
.article-detail {
display: none;
}
.article-detail.active {
display: block;
}
.article-breadcrumb {
display: flex;
align-items: center;
gap: 8px;
font-size: 14px;
color: var(--muted);
margin-bottom: 24px;
}
.article-breadcrumb a:hover { color: var(--primary); }
.article-detail-title {
font-size: 28px;
font-weight: 700;
margin-bottom: 16px;
line-height: 1.4;
}
.article-meta {
display: flex;
gap: 16px;
font-size: 13px;
color: var(--muted);
margin-bottom: 32px;
padding-bottom: 24px;
border-bottom: 1px solid var(--line);
}
.article-content {
font-size: 16px;
line-height: 1.8;
color: #374151;
}
.article-content h3 {
font-size: 18px;
font-weight: 600;
margin: 32px 0 16px;
color: var(--text);
}
.article-content p {
margin-bottom: 16px;
}
.article-content ul, .article-content ol {
margin-bottom: 16px;
padding-left: 24px;
}
.article-content li {
margin-bottom: 8px;
}
.article-content img {
max-width: 100%;
border-radius: 12px;
margin: 20px 0;
}
.article-tip {
background: var(--primary-weak);
border-left: 4px solid var(--primary);
padding: 16px 20px;
border-radius: 0 12px 12px 0;
margin: 24px 0;
}
.article-tip-title {
font-weight: 600;
color: var(--primary);
margin-bottom: 8px;
}
/* 返回按钮 */
.back-btn {
display: inline-flex;
align-items: center;
gap: 6px;
padding: 10px 16px;
font-size: 14px;
color: var(--muted);
background: var(--card);
border: 1px solid var(--line);
border-radius: 8px;
cursor: pointer;
transition: all 0.2s;
margin-bottom: 24px;
}
.back-btn:hover {
border-color: var(--primary);
color: var(--primary);
}
/* 相关文章 */
.related-articles {
margin-top: 48px;
padding-top: 32px;
border-top: 1px solid var(--line);
}
.related-title {
font-size: 16px;
font-weight: 600;
margin-bottom: 16px;
}
.related-list {
display: grid;
gap: 8px;
}
.related-item {
display: flex;
align-items: center;
gap: 8px;
padding: 12px 16px;
background: var(--card);
border-radius: 8px;
cursor: pointer;
transition: all 0.2s;
}
.related-item:hover {
background: var(--primary-weak);
}
.related-item svg {
color: var(--primary);
font-size: 14px;
}
/* 页脚 */
.footer {
background: #1a1f2e;
color: #9ca3af;
padding: 40px 24px;
text-align: center;
}
.footer-logo {
height: 32px;
margin-bottom: 16px;
filter: brightness(0) invert(1);
opacity: 0.8;
}
.footer-text {
font-size: 13px;
}
/* 响应式 */
@media (max-width: 768px) {
.search-title { font-size: 24px; }
.search-input { padding: 14px 20px 14px 48px; font-size: 15px; }
.article-list { padding-left: 0; margin-top: 16px; }
.section-header { padding: 12px 16px; background: var(--card); border-radius: 12px; }
.article-detail-title { font-size: 22px; }
}
/* 列表页隐藏/显示 */
.articles-list-view { display: block; }
.articles-list-view.hidden { display: none; }
</style>
</head>
<body>
<!-- 导航栏 -->
<nav class="navbar" style="opacity:0">
<div class="navbar-inner">
<a href="../index.html" class="navbar-logo">
<img src="../images/白字logo.png" alt="Chookoo" />
</a>
<div class="navbar-menu">
<a href="../index.html" class="navbar-link"><span data-i18n="nav_home">首页</span></a>
<a href="products.html" class="navbar-link"><span data-i18n="nav_products">产品</span></a>
<a href="stories.html" class="navbar-link"><span data-i18n="nav_stories">故事</span></a>
<a href="app.html" class="navbar-link"><span data-i18n="nav_app">App</span></a>
<a href="company.html?article=201" class="navbar-link"><span data-i18n="nav_about">关于我们</span></a>
</div>
<div class="navbar-actions">
<a href="help.html" class="navbar-btn" aria-label="Search">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="11" cy="11" r="8"></circle><path d="m21 21-4.35-4.35"></path></svg>
</a>
<button class="navbar-btn" id="shopBtn" aria-label="Cart">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="9" cy="21" r="1"></circle><circle cx="20" cy="21" r="1"></circle><path d="M1 1h4l2.68 13.39a2 2 0 0 0 2 1.61h9.72a2 2 0 0 0 2-1.61L23 6H6"></path></svg>
</button>
<select id="langSelect" aria-label="Language" class="lang-select-hero">
<option value="zh">中文</option>
<option value="en">EN</option>
</select>
<a href="../index.html#contact" class="navbar-cta"><span data-i18n="nav_contact">联系我们</span></a>
<button class="navbar-btn mobile-menu-btn" aria-label="Menu">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><path d="M4 6h16M4 12h16M4 18h16"></path></svg>
</button>
</div>
</div>
</nav>
<script>
// 同步缩放导航栏,防止闪烁(script 是渲染阻塞的,浏览器不会画出未缩放的 nav)
(function(){var n=document.querySelector('.navbar');var vw=window.innerWidth;var s=vw<1280?vw/1280:vw>2560?vw/2560:vw/1920;n.style.transform='scale('+s+')';n.style.transformOrigin='top left';n.style.width='1920px';n.style.opacity='1';})();
</script>
<div id="pageContent" style="opacity:0">
<!-- 主内容 -->
<main class="main-content">
<div class="container">
<!-- 文章列表视图 -->
<div class="articles-list-view" id="articlesListView">
<!-- 搜索区域 -->
<section class="search-section">
<h1 class="search-title">法律条款</h1>
<p class="search-subtitle">隐私政策、服务条款等信息</p>
<div class="search-box">
<svg class="search-icon" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="11" cy="11" r="8"/><path d="m21 21-4.35-4.35"/></svg>
<input type="text" class="search-input" id="searchInput" placeholder="搜索..." />
<div class="search-results" id="searchResults"></div>
</div>
</section>
<!-- 分类标签 -->
<div class="category-tabs" id="categoryTabs">
<div class="category-tab active" data-category="all">全部</div>
</div>
<!-- 文章分类列表 -->
<div id="articlesContainer"></div>
</div>
<!-- 文章详情视图 -->
<div class="article-detail" id="articleDetail">
<button class="back-btn" id="backToList">
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M19 12H5M12 19l-7-7 7-7"/></svg>
返回列表
</button>
<div id="articleContent"></div>
</div>
</div>
</main>
<!-- 页脚 -->
<footer class="footer">
<img src="../images/白字logo.png" alt="Chookoo" class="footer-logo" />
<p class="footer-text">© 2025 宠小科智能科技(苏州)有限公司 保留所有权利</p>
</footer>
<script>
// 视口缩放 - 基于1920px设计稿
(() => {
const designWidth = 1920;
const minWidth = 1280;
const maxWidth = 2560;
const content = document.getElementById('pageContent');
const navbar = document.querySelector('.navbar');
function scale() {
const vw = window.innerWidth;
let s = 1;
if (vw < minWidth) {
s = vw / minWidth;
} else if (vw > maxWidth) {
s = vw / maxWidth;
} else {
s = vw / designWidth;
}
// 内容区缩放
content.style.transform = `scale(${s})`;
content.style.transformOrigin = 'top left';
content.style.width = `${designWidth}px`;
// 修复底部空白
const layoutH = content.scrollHeight;
const visualH = layoutH * s;
content.style.marginBottom = `-${Math.ceil(layoutH - visualH)}px`;
// 内容区显示
content.style.opacity = '1';
// navbar 单独缩放(fixed 不受 content transform 影响)
if (navbar) {
navbar.style.transform = `scale(${s})`;
navbar.style.transformOrigin = 'top left';
navbar.style.width = `${designWidth}px`;
navbar.style.opacity = '1';
}
}
function fixLayout() {
const s = content.getBoundingClientRect().width / content.scrollWidth;
const layoutH = content.scrollHeight;
const visualH = layoutH * s;
content.style.marginBottom = `-${Math.ceil(layoutH - visualH)}px`;
}
scale();
window.addEventListener('resize', scale);
window.addEventListener('load', fixLayout);
setTimeout(fixLayout, 2000);
new MutationObserver(() => requestAnimationFrame(fixLayout)).observe(content, { childList: true, subtree: true, attributes: true });
document.querySelectorAll('img').forEach(img => { if (!img.complete) img.addEventListener('load', fixLayout); });
})();
</script>
<script>
// 页面类型
const PAGE_TYPE = 'legal';
// 分类配置(服务条款和Cookie说明待正式内容后恢复)
const categories = {
all: { name: '全部', icon: '📋' },
privacy: { name: '隐私政策', icon: '🔒' }
};
// 默认文章数据(法律条款)
const defaultArticles = [
{ id: 401, pageType: 'legal', category: 'privacy', categoryName: '隐私政策', title: '宠科智能隐私政策', content: '<p>宠科智能隐私政策</p><p>更新日期:2026年5月6日</p><p>生效日期:2026年5月6日</p><p>《宠科智能隐私政策》(以下简称“本隐私政策”)由宠科智能科技(苏州)有限公司(以下简称为:“宠科”或“我们”)向您提供,公司地址为: 苏州市吴江区长安路2358号吴江科技创业园2号楼。</p><p>本隐私政策能够提供有关我们如何管理您在使用“宠科宠物”App、连接“宠科宠物”App的设备和服务时透露的个人信息的隐私详情。请花一些时间熟悉我们的隐私政策,如果您有任何问题,请告诉我们。</p><h2>我们向您承诺</h2><p>本隐私政策规定了宠科智能科技(苏州)有限公司及关联公司(下文简称“宠科”或“我们”)如何收集、使用、披露、处理和保护您在使用我们的产品和服务时通过“宠科宠物”App提供给我们的信息。若我们要求您提供某些信息,以便在使用“宠科宠物”App和服务时验证您的身份,我们将严格遵守本隐私政策和我们的用户条款与条件来使用这些信息。</p><p>本隐私政策在制定时充分考虑到您的需求,您全面了解我们的个人资料收集和使用惯例,而且确信自己最终能控制提供给宠科的所有个人信息,这一点至关重要。如果您不同意本隐私政策的任何内容,您应立即停止使用“宠科宠物”App及其服务。当您使用“宠科宠物”App提供的任一服务时,即表示您已同意我们按照本隐私政策来使用和保护您的个人信息。</p><p>在这项隐私政策中,“个人信息”指所有通过有关特定个人的信息,或者与宠科能够访问的其他关于该人的信息相结合后,能够直接或间接识别该人的所有数据。此类个人信息包括但不限于您提供或上传的信息和设备信息。</p><p>通过使用“宠科宠物”App和服务,即表示您已阅读并接受本隐私政策中所述之所有条款,包括我们定期作出的任何变更。另外,为遵守相关法律法规,如《App违法违规收集使用个人信息行为认定方法》,我们承诺遵照适用法律来保护您的个人信息的隐私、机密和安全。同时我们承诺确保我们的全体员工履行这些义务。</p><p>我们深知个人信息对用户的重要性,我们将按业界成熟的安全标准,采取相应的安全保护措施来保护您的个人信息。我们所希望的就是为我们的用户带来最好的体验。如果您对这一隐私政策中概括的数据处理惯例有任何疑问,请通过电话:400-087-0203 联系我们,以便我们处理您的需求,我们很高兴直接为您答疑解惑。</p><h2>哪些信息会被收集以及我们如何使用这些信息?</h2><h3>收集的信息类别</h3><p>为了向您提供我们的服务,我们会要求您提供向您提供服务所必需的个人信息。如果您不提供个人信息,我们可能无法向您提供我们的产品或服务。</p><p>我们只会为了详细说明过的、明确的、合法的目的收集必要的信息,我们可能会收集以下各类信息(无论其是否为个人信息):</p><p>1.当您注册及登录时,如您使用一键登录的功能,基于我们与通信运营商的合作,我们会收集您的手机号码和网络运营商信息,以便为您提供快捷的登录服务;如您使用第三方平台的帐号登录,我们将收集身份验证信息 (手机号码、验证码匹配结果) 用于为您提供帐号登录服务。</p><p>2.您提供给我们或上传的信息:“宠科宠物”App的账号信息(例如您的安全相关信息、姓名、生日、性别,以下简称“宠科账号”)、您可能接入到宠科平台的设备同步的资料或数据、在宠科平台创建的账户和相关设置信息、以及您添加的设备或发送的消息、反馈等。</p><p>3.手持终端或SIM卡相关信息:我们可能收集运行宠科的手持终端相关的信息,例如SDK/API/JS代码版本、浏览器、互联网服务提供商、应用标识符、应用程序版本、应用分发渠道、独立设备标识符、iOS广告标识符(IDFA)、安卓广告主标识符、网卡(MAC)地址、DID、固件版本、国际移动设备识别码(IMEI)、设备型号、终端制造厂商、终端设备操作系统版本、会话启动/停止时间、语言所在地、时区和网络状态(WiFi等)等。</p><p>4.位置信息(仅适用于特定服务/功能):与您的位置相关的各类信息,例如区域和国家代码、城市代码、移动网络代码、移动设备国家代码、小区识别码、地区名称、经纬度信息、时区设置和语言设置。</p><p>5.登录信息:与您使用某些功能、移动应用程序和网站相关的信息,例如cookie和其他匿名标识符技术、IP地址、网络请求信息、临时消息历史、标准系统日志和系统崩溃信息等。</p><p>6.设备记录的数据:当您使用“宠科宠物”App同步相关设备的数据时,我们会记录您的爱宠的资料,包括活动信息、睡眠、心率、体重等。</p><p>7.其他信息:环境特征值 (ECV)(由宠科账号、手机ID、连接的Wi-Fi账号及位置信息产生的数值)</p><p>8.账户凭证:有关您账户凭证的信息,例如密码、关联邮箱等。</p><p>9.存储权限:我们存在部分业务会在App内产生某些图片或者视频,需要保存至手机内;同时也存在部分业务需要调用您手机中现有的视频或者图片,我们会向您的手机申请存储权限。</p><p>10.智能可视化设备相关权限:</p><p>(1) 当您使用拥有视频功能设备的视频预览、播放、回放功能时,我们会收集您设备的序列号、设备内网IP、设备外网 IP 、当前连接的网络类型、当前网络状态,和您的 客户端终端设备的(手机)运营商类型、客户端类型、客户端版本号、操作系统版本、操作系统类型、设备型号、设备屏幕宽度、设备屏幕高度、设备屏幕方向、设备屏幕密度 ,以便为您实现该功能之目的。该些信息是您使用前述功能的必要信息,若您拒绝提供,我们将无法为您提供相应服务。</p><p>(2) 在您使用视频预览、播放功能时,我们会收集您设备的当前视频画面截图,用于向您展示,以方便您识别监控内容的信息,您可以通过设备隐私信息控制拒绝我们收集。若您拒绝提供,您将无法在监控视频首页查看前述截图,但不影响您使用播放、回放等功能。需要说明的是,除非您另外使用基于视频分析的增值服务并相应授权予宠科,我们不会、也无法查看或使用您的任何视频内容及 /或上述视频截图。</p><p>(3) 当您使用涉及智能物联网视频类设备的语音对讲的功能时,我们会要求您开启麦克风权限,您可以通过系统设置关闭麦克风权限拒绝我们收集,这将使您无法使用该项功能,但不会影响您使用硬件设备或宠科App的其他功能。</p><p>(4) 当您开启消息提醒功能时,我们会收集您的摄像机拍摄的视频截图 ,从而将截图作为提醒消息的内容推送给您。本功能为可选功能 ,您可以通过拒绝通知权限而阻止我们向您推送消息通知,也可以通过设备设置中关闭通知而拒绝该功能。</p><h3>这些个人信息可能会被如何使用?</h3><p>收集个人信息的目的在于向您提供产品或服务,并且保证我们遵守适用法律。您特此同意我们可以出于本隐私政策规定的目的处理个人信息,并向我们的关联公司(涉及通信、社交媒体、技术和云业务)和第三方服务供应商(定义如下)披露个人信息。</p><p>我们可能会将个人信息用于下列目的:</p><p>1.提供、处理、维护、改善、开发我们的商品和/或给您的服务,以及通过设备或“宠科宠物”App提供的服务。</p><p>2.与您就您的设备、服务或任何普通查询(例如更新、设备固件/软件升级、客户咨询支持、相关信息、通知)等进行交流。</p><p>3.开展市场营销相关活动,例如提供营销和推广相关的资料和更新。获取更多市场营销和推广相关的活动信息,请查看后示的题为“直接市场推广”的内容。</p><p>4.分析和开发与我们产品及服务的使用相关的统计信息,以更好地改进我们的产品和服务。</p><p>5.储存并维护与您相关的信息,用于我们运营业务或履行法律义务。</p><p>6.无需与我们的服务器通信,提供本地服务。</p><p>7.验证您的个人身份,以预防、发现、调查非法或违反与我们的政策或规则的行为,以保护您或我们的合法权益。</p><p>8.经您同意及授权的其他用途。</p><p>关于我们如何使用您的信息(其中可能包含个人信息),下面提供了更多详细信息:</p><p>1.创建您的宠科账号:在通过我们的移动设备创建账号时收集的个人信息用于建立用户的个人账户和资料页。</p><p>2.提供基于位置的服务:在使用宠科及接入宠科的设备时,我们可能会使用位置信息判断设备时区,以保证在设备中准确显示时间、登录服务地区。您可以随时进入设备设置或停止使用这一应用程序来关闭这一功能。</p><p>3.设备接入:设备通过APP进行操作,需要验证其设备的真实性,因此我们会需要通过核验出厂MAC、DID信息来确认设备的合法身份。此外,设备需要连接网络使用的情况下,需要通过APP对设备进行相应的网络设置,此过程需要您录入相应的Wi-Fi名称及密码,该信息仅用于设备配网使用。您填写的Wi-Fi及密码数据,我们会加密存储在设备本地,不会上传服务器,您可以随时进入设备删除该信息。 同时,我们需要通过判断IP、网络信号为设备选择最优联网方式,来保障设备的联网稳定性。</p><p>4.设备状态显示:可以允许您远程查看设备状态,以便您时刻查看设备运行情况。</p><p>5.设置自动化任务:您设备上报的事件信息(信息来自于您添加的设备,具体的可设置信息取决于您对该设备的隐私授权范围,每个添加设备会提供设备提供方的隐私政策相关条款由您选择是否同意),可以用于创建属于您个人的自动化任务。</p><p>6.提供推送服务:账号和 IMEI 号码也将用于提供推送服务,为用户发送设备通知。</p><p>7.验证用户身份:宠科使用 ECV 值来验证用户身份,确保黑客或未经授权的人员无法登录。</p><p>8.收集用户反馈:您选择提供的反馈对帮助宠科改进我们的服务而言极为珍贵。为了跟踪您选择提供的反馈,宠科可能会使用您所提供的个人信息与您联系,并保留记录。</p><p>9.发送通知。我们可能会不时使用您的个人信息来发送重要通知,例如有关设备异常运行状态的通知、您定制的设备推送通知(具体需要根据您购买添加设备的情况而定)、我们的条款、条件和政策变更。</p><p>10.为了监听用户桌面widget组件状态,以便我们判断用户桌面widget组件状态,用于保证点击桌面小组件进入宠科宠物APP功能使用正常,我们使用了ToiletAppWidgetProvider。这可能会导致在系统界面/日志/后台记录中(取决于您的终端型号),显示您产品有自启动的情况,但这是保证我们产品能正常提供服务所必须的步骤。</p><p>11.基于您的设备信息,为您推荐或展示您可能感兴趣的产品/服务信息,包括在设备页面向您推荐设备配套的耗材商品等。如您不希望接收此类内容,您可以在“我的-设置-个性化推荐”中关闭。关闭后,您将不再看到此类内容。</p><h3>直接市场推广</h3><p>1.我们可能会使用您的电子邮箱地址、宠科账号、手机硬件标识符(如IDFA、IMEI)向您提供宠科公司和业务合作伙伴 (提供网络、移动应用程序以及云端产品及服务)的产品和服务相关的推广资料。我们严格遵守中国国内的个人信息保护的相关条例,要求独立的明确许可,所以我们只会在征得您的同意或您表示不反对时使用您的个人信息。</p><p>2.您有权终止我们使用计划用于直接推广的个人数据。如果您希望我们停止对您进行的直接推广或不再希望接收某些类别的推广内容,您可以通过拨打电话:400-087-0203 联系我们解决您的诉求,我们会在收到您邮件后的合理时间内处理您的请求。未经您同意,我们不会将您的个人信息传送给我们的商业伙伴以便用于直接推广。</p><h3>我们与谁共享您的信息?</h3><p>我们不会将任何个人信息出售给第三方。</p><p>我们可能会向第三方(定义见下文)披露您的个人信息,以便提供您要求的产品或服务我们将与为本隐私政策规定之目的而为我们服务的供应商或代理商分享个人数据。例如,我们聘请来提供数据分析服务的公司可能需要采集和访问个人数据以进行数据统计和分析。在这种情况下,这些公司必须遵守我们的数据隐私和安全要求。</p><p>在本部分所述的各种情况下,您可以放心,宠科仅会根据您的授权共享您的个人信息。您对宠科的授权将包括各类处理您的个人信息的子处理器。您应当了解,在下文描述的任何情况下,当宠科与第三方服务供应商共享您的个人信息时,宠科会通过合同规定第三方的实践和义务,遵守适用的地方数据保护法。宠科会通过合同保证第三方服务供应商遵守您所属司法管辖区中适用于他们的隐私权标准。</p><h3>与第三方服务供应商共享</h3><p>为了顺利地从事商业经营,以向您提供产品和服务的全部功能,我们可能会向其他的宠科关联公司(其涉及通讯、社交媒体、技术或云业务)或我们的第三方服务供应商(电信公司、数据中心、数据存储设施、客户服务供应商、广告和推广服务供应商、关联公司或其他第三方)(统称为"第三方服务供应商")披露您的个人信息。此类第三方服务供应商可能代表宠科或出于上述的一项或多项目的处理您的个人信息。在我们的设备上使用某些移动应用程序时,我们可能会和第三方共享您的 IP 地址,以便为您提供您要求的一些服务。如果您不再希望我们共享这些信息,请通过电话:400-087-0203 联系我们。</p><h3>接入的第三方软件开发工具包(SDK</h3><p>为了适配在不同手机设备上使用宠科宠物移动应用以及第三方平台服务,实现您的手机设备身份认证、手机设备安全、接收信息推送、登录第三方平台账号以及通过第三方平台分享信息,宠科宠物移动应用接入了第三方SDK。上述第三方SDK提供方包括手机设备厂商、社交平台和通讯运营商。部分第三方SDK可能会调用您的设备权限、获取您的相关信息,以便您在不同的手机设备或第三方平台上正常使用相应功能。不同的第三方SDK所调用的设备权限类型以及所获得的信息可能不同,可能包括获取您的位置信息、读/写您的外部存储卡、读取您的手机状态和身份、查看WLAN连接、检索正在运行的应用/蓝牙。关于第三方SDK具体调用的设备权限类型,以及如何收集、使用您的个人信息,建议您参考第三方SDK的相关服务协议及隐私政策。以下是第三方SDK具体情况说明:</p><p>新浪微博开放平台</p><p>使用目的:帮助用户使用微博登录,并使用微博分享功能</p><p>隐私政策链接:https://weibo.com/signup/v5/privacy?spm=a1zaa.8161610.0.0.4f8776217Wu8R1</p><p>申请调用的权限:查看WLAN连接;读取外置存储卡;读取手机状态和身份;写入外部存储卡;检索正在运行的应用</p><p>收集个人信息类型:设备信息;Wi-Fi地址;IMSI</p><p>微信开放平台SDK</p><p>使用目的:接入微信开放平台SDK,支持微信授权登录、微信分享</p><p>数据类型:设备标识信息</p><p>官网链接:https://open.weixin.qq.com/</p><p>QQ分享SDK</p><p>使用目的:接入微信开放平台SDK,支持微信授权登录、微信分享</p><p>数据类型:设备标识信息</p><p>官网链接:https://open.weibo.com/wiki/Android_SDK%E8%AF%B4%E6%98%8E%E6%96%87%E6%A1%A3</p><p>腾讯开放平台Bugly SDK</p><p>使用目的:Crash信息收集及分析</p><p>数据类型:设备标识信息、读取手机状态和身份</p><p>官网链接:https://static.bugly.qq.com/bugly-sdk-privacy-statement.pdf</p><p>友盟移动统计SDK,友盟组件化基础库</p><p>使用目的:采集设备标识信息用于生成脱敏的终端用户设备标识,完成移动应用基础统计。</p><p>隐私政策链接:https://www.umeng.com/policy</p><p>申请调用的权限:访问网络状态、读取手机状态和身份、访问网络、读写系统设置</p><p>收集个人信息类型:个人常用设备信息,包括Android ID/IDFA/OpenUDID/GUID/OAID。</p><p>友盟+SDK</p><p>使用目的:我们采用合并链路技术进行技术推送,当一个设备有多个APP的推送链路同时活跃时,我们会随机合并成一条链路,以达到为您省电省流量的目的,因此需获得应用列表信息;同时我们提供智能推送功能,通过该信息推荐更符合您需要的推送内容,减少无用推送信息对您用户的打扰。</p><p>隐私政策链接:https://www.umeng.com/policy</p><p>申请调用的权限:访问网络状态、读取手机状态和身份、访问网络、读写系统设置</p><p>收集个人信息类型:个人常用设备信息,包括IMEI/MAC/Android ID/IDFA/OpenUDID/GUID/ICCID/IP/SIM 卡 IMSI /地理位置信息。</p><p>小米推送</p><p>功能/服务:向使用小米设备的用户进行消息推送</p><p>官网链接:https://dev.mi.com/console/appservice/push.html</p><p>隐私政策链接:https://dev.mi.com/console/doc/detail?pId=1822</p><p>申请调用的权限:查看WLAN连接;读取外置存储卡;开机启动;读取手机状态和身份;写入外部存储卡;检索正在运行的应用</p><p>收集个人信息类型:设备信息;Wi-Fi地址;运营商信息</p><p>vivo推送</p><p>功能/服务:向使用vivo设备的用户进行消息推送</p><p>官网链接:https://dev.vivo.com.cn/home</p><p>隐私政策链接:https://www.vivo.com.cn/about-vivo/privacy-policy</p><p>申请调用的权限:读取外置存储卡;写入外部存储卡;检索正在运行的应用</p><p>收集个人信息类型:设备信息;运营商信息</p><p>魅族推送</p><p>功能/服务:向使用魅族设备的用户进行消息推送</p><p>官网链接:https://open.flyme.cn</p><p>隐私政策链接:https://www.meizu.com/legal.html</p><p>申请调用的权限:查看WLAN连接;读取外置存储卡;读取手机状态和身份;写入外部存储卡</p><p>收集个人信息类型:设备信息;Wi-Fi地址;运营商信息</p><p>OPPO推送</p><p>涉及的个人信息类型:设备标识符(如IMEI、ICCID、IMSI、Android ID、GAID)、应用信息(如应用包名、版本号和运行状态)、网络信息(如IP或域名连接结果,当前网络类型)</p><p>使用目的:推送消息</p><p>使用场景:在OPPO手机终端推送消息时使用</p><p>第三方主体:广东欢太科技有限公司</p><p>收集方式:SDK采集</p><p>官网链接:https://open.oppomobile.com/wiki/doc#id=10194</p><p>隐私政策:https://open.oppomobile.com/wiki/doc#id=10288</p><p>七牛云SDK</p><p>使用目的:上传图片和视频</p><p>第三方主体:上海七牛信息技术有限公司</p><p>隐私政策:https://developer.qiniu.com/pili/8027/sdk-privacy-policy</p><p>申请调用的权限:访问网络状态、读取手机状态和身份、访问网络、读写系统设置</p><p>收集个人信息类型:设备标识符(如IMEI、ICCID、IMSI、Android ID、GAID)、应用信息(如应用包名、版本号和运行状态)、网络信息(如IP或域名连接结果,当前网络类型)</p><p>高德开放平台定位SDK</p><p>使用目的:为用户提供遛宠定位服务</p><p>第三方名称:高德软件有限公司</p><p>隐私权政策链接:https://lbs.amap.com/pages/privacy/</p><p>收集个人信息类型:位置信息(经纬度、精确位置、粗略位置)【通过IP 地址、GNSS信息、WiFi状态、WiFi参数、WiFi列表、基站信息、信号强度的信息、蓝牙信息、传感器信息(矢量、加速度、压力、方向、地磁)、设备信号强度信息获取】、设备标识信息(IMEI、IDFA、IDFV、Android ID、MEID、MAC地址、OAID、IMSI、硬件序列号)、当前应用信息(应用名、应用版本号)、设备参数及系统信息(系统属性、设备型号、操作系统)</p><p>高德开放平台地图SDK</p><p>使用目的:为用户提供遛宠地图展示、定位等服务</p><p>第三方名称:高德软件有限公司</p><p>隐私权政策链接:https://lbs.amap.com/pages/privacy/</p><p>收集个人信息类型:位置信息(经纬度、精确位置、粗略位置)【通过IP 地址、GNSS信息、WiFi状态、WiFi参数、WiFi列表、基站信息、信号强度的信息、蓝牙信息、传感器信息(矢量、加速度、压力、方向、地磁)、设备信号强度信息获取】、设备标识信息(IMEI、IDFA、IDFV、Android ID、MEID、MAC地址、OAID、IMSI、硬件序列号)、当前应用信息(应用名、应用版本号)、设备参数及系统信息(系统属性、设备型号、操作系统)。</p><p>阿里推送SDK</p><p>使用目的:提供IM长连接服务</p><p>第三方主体:阿里巴巴云计算(北京)有限公司</p><p>隐私政策:https://terms.aliyun.com/legal-agreement/terms/suit_bu1_ali_cloud/suit_bu1_ali_cloud202202240828_17281.html</p><p>申请调用的权限:访问网络状态、读取手机状态和身份、访问网络、读写系统设置</p><p>收集个人信息类型:设备标识符(如IMEI、ICCID、IMSI、Android ID、GAID)、应用信息(如应用包名、版本号和运行状态)、网络信息(如IP或域名连接结果,当前网络类型)</p><p>阿里一键登录号码认证服务SDK</p><p>使用目的:一键登录</p><p>涉及的个人信息类型:网络类型、切换wifi和蜂窝网络通道、设备信息(含IP地址、设备制造商、设备型号、手机操作系统、SIM卡信息SIM State、SIM卡信息ICCID</p><p>使用场景:在用户使用手机号一键登录时使用</p><p>第三方主体:阿里巴巴云计算(北京)有限公司</p><p>收集方式:SDK采集</p><p>隐私权政策链接:https://terms.aliyun.com/legal-agreement/terms/suit_bu1_ali_cloud/suit_bu1_ali_cloud202112211045_86198.html</p><p>中国移动</p><p>运营主体:中国移动通信集团有限公司</p><p>功能:识别用户的手机号码快速登录</p><p>收集个人信息类型:网络类型、切换wifi和蜂窝网络通道、设备信息(含IP地址、设备制造商、设备型号、手机操作系统、SIM卡信息SIM State、SIM卡信息ICCID)。</p><p>隐私权政策链接:https://wap.cmpassport.com/resources/html/contract.html</p><p>中国联通</p><p>运营主体:中国联合网络通信集团有限公司</p><p>功能:识别用户的手机号码快速登录 收集个人信息类型:当前手机号码的掩码</p><p>隐私政策链接:https://opencloud.wostore.cn/authz/resource/html/disclaimer.html?spm=a2c4g.11186623.0.0.41f1633eHxMLkQ&amp;fromsdk=true</p><p>中国电信</p><p>运营主体:中国电信集团有限公司</p><p>功能:识别用户的手机号码快速登录</p><p>收集个人信息类型:当前手机号码的掩码</p><p>隐私政策链接:https://e.189.cn/sdk/agreement/detail.do?spm=a2c4g.11186623.0.0.41f1633eHxMLkQ&amp;appKey=E_189&amp;hidetop=true&amp;returnUrl=</p><p>声网云信令SDK、实时消息SDK</p><p>运营主体:上海声网科技有限公司</p><p>功能:宠科智能可视版产品的直播功能,确保产品服务在不同设备上的兼容性,对兼容/崩溃问题进行适配和故障排查</p><p>收集个人信息类型:终端品牌、设备型号、操作系统版本、CPU信息、内存使用情况、IP地址、网络接入方式和类型等</p><p>隐私政策链接: https://www.shengwang.cn/SDK-privacy-policy/#</p><h3>与我们集团的生态系统公司共享信息</h3><p>您知悉并同意:宠科公司旗下拥有启宠网络、传味供应链、佩格医院等由宠科投资和运营的独立实体。此外,我们还有全国各地数百家“宠科宠物”加盟店。我们可能会向宠科生态系统公司披露您的个人信息和相关数据,以提供“宠科宠物”的软件、硬件服务,带来更好的功能和用户体验。</p><h3>不需要同意的信息</h3><p>我们可能以汇总的形式与第三方(例如我们网站上的广告商)共享匿名信息,用于商业目的;我们可能与其共享我们服务的一般使用趋势,例如在购买某些产品或从事某些交易的特定人群中的客户数量。</p><p>为免存疑,宠科可能在法律明确允许的情况下和范围内(例如为了遵循传票)不经您的同意而收集、使用或披露您的个人信息,并且当我们可能会出于诚意相信为了保护我们的权利、保护您的安全或他人安全、为调查欺诈行为或对政府要求作出回应而必需披露时,不经您的同意而披露您的信息。</p><h2>安全保障</h2><h3>宠科的安全措施</h3><p>1.我们承诺保证您的个人信息安全。为了防止未经授权的访问、披露或其他类似风险,我们落实了合理的物理、电子和管理措施流程,保护我们从您对“宠科宠物”APP的使用收集的信息。我们将采取所有合理的措施保护您的个人信息。例如,当您从宠科设备向我们的服务器发送或收取信息时,我们将使用安全套接层 (SSL) 和其他算法对其进行加密。</p><p>2.您的个人信息全都被储存在安全的服务器上,并在受控设施中受到保护。我们依据重要性和敏感性对您的数据进行分类,并且保证您的个人信息具有最高的安全等级。我们保证通过访问这些信息来帮助向您提供产品和服务的员工和第三方服务供应商具有严格的合同保密义务,如果未能履行这些义务,其将会受到纪律处分或被终止合作。同样,我们对以云为基础的数据存储设有专门的访问控制措施。总而言之,我们定期审查信息收集、储存和处理实践,包括物理安全措施,以防止任何未经授权的访问和使用。</p><p>3.请您理解,由于技术水平限制及可能存在的各种恶意手段,有可能因我们可控范围外的不确定因素而不幸发生个人信息安全事件。如安全事件发生,我们将按照法律法规的要求,及时向您告知:安全事件的基本情况和可能的影响、我们已采取或将要采取的处置措施、您可自主防范和降低风险的建议、对您的补救措施等。同时,我们将对个人数据安全事件采取相应措施,按照监管机构的要求,将泄露现象通报相关监管机构。</p><h3>您可以做什么</h3><p>1.您可以在保护您的个人信息方面发挥自己的作用,不要向任何人透露您的登录密码或帐户信息,除非此人获得您的正式授权。无论您何时作为宠科账号用户登录宠科宠物,尤其是在他人的计算机或公共互联网终端上登录时,在会话结束时您总应注销登出。</p><p>2.宠科不对因您未能保持个人信息的私密性而导致第三方访问您的个人信息进而造成的安全疏漏承担责任。尽管有上述规定,如果发生互联网其他任何用户未经授权使用您账户的情况或其他任何安全漏洞,您必须立即通知我们。您的协助将有助于我们保护您个人信息的私密性。</p><p>3.我们鼓励父母或监护人指导未满十八岁的未成年人使用我们的服务。如您未满14周岁,或根据您所在地法律法规尚未成年,建议您请您的父母或监护人阅读本政策,并在征得您父母或监护人同意的前提下使用我们的服务,但请避免向我们提供任何关于可识别您个人的个人信息。如您的监护人不同意您按照本政策使用我们的服务、或您实际向我们提供了可识别到您个人的信息,请您立即终止使用我们的服务并及时通知我们,以便我们根据适用法律的规定采取相应的措施。</p><h3>保留政策</h3><p>如有必要实现收集信息的目的,或者遵守适用法律要求或允许,我们将一直保留个人信息。如果有合理的理由认为保留个人信息不能实现收集个人信息的目的(如我们停止对您的全部或部分服务或停止相关运营),我们将不再保留个人信息,或删除或匿名化处理个人信息与特定个人相关联的方式。我们也将根据适用法律回应您对删除我们已收集的个人信息的要求。如果是为了公众利益对信息进行进一步处理归档,为了科学或历史研究目的或根据使用法律进行统计的目的,即使进一步处理信息的目的与原始目的不相符,宠科也可以进一步保留数据。</p><h3>访问您的设备上的其他功能</h3><p>我们的应用程序可能会访问您设备上的某些功能,例如Wi-Fi 网络状态。这些信息用于允许这些应用程序在您的设备上运行,并且允许您与其互动。在任何时候,您可以通过在设备水平上关闭应用程序或者通过邮箱:service@petkit.com 联系我们来撤销许可。</p><h2>您的权利</h2><p>1.打开或者关闭位置访问功能;</p><p>2.登入、登出、注销宠科账户;</p><p>3.访问、查询、更新、更正、消除或限制处理您的个人信息;</p><p>如果您之前因为上述目的同意我们使用您的个人信息,您可以随时访问、查询、更新、更正、消除或限制处理您的个人信息。当您更新个人信息时,我们将在适用数据保护法规定的时间内对您的请求做出回应。</p><p>4.撤销同意:您可以联系我们提交请求,撤销同意收集、使用和/或披露我们掌握或控制的您的个人信息。我们将会在您做出请求后的合理时间内处理您的请求,并且会根据您的请求,在此后不再收集、使用和/或披露您的个人信息。请注意,您撤销同意会导致某些法律后果。根据您撤销同意让我们处理您的个人信息的范围,这可能表示您不能享受宠科的产品和服务。</p><p>5.注销账号:您随时可注销此前注册的账户,您可以通过以下方式自行操作:进入app 底部我-系统设置-账号管理-注销账号提交注销申请,工作人员会协助您完成注销。您知悉并理解,注销账号的行为是不可逆的行为,在注销账户之后,我们将停止为您提供产品或服务,并依据您的要求, 删除您的个人信息或使其匿名化处理,法律法规另有规定的除外。</p><p>6.将个人信息转移到您所属的司法管辖区之外:如果我们需要将个人信息转移到您所属的司法管辖区之外,无论是转移给我们的关联公司(其涉及通信、社交媒体、技术和云业务)或第三方服务供应商时,我们将按照适用法律进行。特别是,我们通过落实合适的安全保障措施,保证所有这类转移满足适用的地方数据保护法的要求。您将有权获知宠科为转移您的个人信息而采取的适当保护措施。当您选择使用本产品和服务中的其他第三方服务时(如Amazon AlexaGoogle Assistant语音服务等),第三方可能会读取您的相关信息,您的相关信息也可能被传输到您所属的司法管辖区之外的第三方服务器,您同意此种情境的转移。</p><p>其他规定</p><h2>隐私政策的更新</h2><p>我们会对隐私政策进行定期审核,为反映我们信息惯例的变更,我们可能会更新本隐私政策。如果我们对本隐私政策进行重大变更,我们将通过(向您账户指定的邮箱地址发送)电子邮件或在宠科宠物APP公布或通过移动设备通知您,这样您可以了解我们收集的信息以及我们如何使用这些信息。此类隐私政策变化将从通知或网站规定的生效日期开始适用。我们建议您定期查阅本网页获取我们隐私权实践的最新信息。您继续使用产品和网站、手机和/或其他任何设备上的服务,将被视为接受更新的隐私政策。在我们向您收集更多的个人信息或我们希望因为新的目的使用或披露您的个人信息时,我们会再次征得您的同意。</p><h3>我是否必须同意任何第三方条款与条件?</h3><p>我们的隐私政策不适用于第三方提供的产品和服务。“宠科宠物”App和服务可能包括第三方的产品和服务,以及第三方网站的链接。当您使用这些产品或服务时,也可能收集您的信息。因此,我们强烈建议您花时间阅读该第三方的隐私政策,就像阅读我们的政策一样。我们不对第三方如何使用他们向您收集的个人信息负责,也不能控制其使用。我们的隐私政策不适用通过我们的服务链接的其他网站。</p><h3>社交媒体(功能)和小工具</h3><p>我们的软件包含一些社交媒体功能,包括按钮和小组件,例如"分享"按钮。这些功能可能会收集您的 IP 地址和您在我们网站中浏览的页面,并可能设置 cookie 以使相应功能正常运行。您与这些功能的互动均受其提供公司隐私政策的制约。</p><h3>猫砂盆摄像头云存储开通付款协议</h3><p>1.用户勾选同意、付款开通猫砂盆摄像头云存储,即视为阅读并同意本全部协议。</p><p>2.云存储为付费虚拟增值服务,提供猫砂盆摄像头录像云端储存、回看、播放功能,套餐分为包月/包季/包年,价格以APP下单页面展示为准。</p><p>3.用户自愿通过支付宝、微信、苹果内购等渠道付款,付款成功即刻开通服务、生效计费,服务时效按选购套餐时长计算。</p><p>4.虚拟付费服务一经付款开通,不支持退换、退款、折现、转让;因用户设备故障、断网、人为操作、账号丢失造成服务无法使用,不予退款。</p><p>5.我方正常提供云端储存运维,因系统维护、网络波动、服务器检修产生短暂服务中断,不做赔付退款。</p><p>6.用户禁止利用摄像头云存储拍摄传播违规隐私内容,违规我方可暂停关闭服务,费用不予退还。</p><p>7.我方有权合规更新套餐价格与服务规则,页面公示后生效,继续使用视为同意。</p><h3>猫砂盆摄像头云存储自动续费服务协议</h3><p>1.用户开通自动续费,视为授权平台向绑定支付账户,到期自动代扣费用续购云存储套餐。</p><p>2.计费周期:包月/包季/包年,扣费会在当前套餐到期前24小时内自动扣款,扣款成功自动顺延服务时长。</p><p>3.扣费账户:微信/支付宝/AppleID/绑定银行卡,用户需保证账户余额充足,余额不足扣费失败,服务到期自动停止。</p><p>4.续费价格:以续费当下APP展示标价为准,优惠仅当期有效,后续续费按官方标准价。</p><p>5.取消自动续费规则: -需在当前套餐到期24小时前手动关闭自动续费;当期已开通权益正常使用,到期不再扣款。 -支付宝:我的—设置—免密支付—关闭对应订阅 -微信:我—服务—钱包—支付设置—免密支付关闭 -苹果:设置-AppleID-订阅-取消订阅</p><p>6.用户忘记关闭、账户自动代扣,已扣款不予退款。</p><p>7.平台可随时优化自动续费规则,APP公示生效,持续使用代表认可。</p><h3>隐私政策新增|猫砂盆摄像头及云存储章节</h3><p>1.本章节适用于猫砂盆内置摄像头录制画面、音频、云端储存录像数据。</p><p>2.我方仅储存设备上传的监控录像,仅用于用户回看存储,不会私自查看、外泄、贩卖、推送用户监控影像。</p><p>3.所有云端录像加密储存,仅当前登录账号可查看下载。</p><p>4.用户可自行随时删除云端录像,套餐到期未续费,到期后系统自动清理云端储存录像。</p><p>5.不会收集摄像头画面用作广告推送、第三方共享;法律机关依法调取除外。</p><p>6.用户自行保管账号,账号泄露造成影像泄露,平台无责。</p><h3>联系我们</h3><p>如果您对本隐私政策有任何意见或问题,或者您对宠科收集、使用或披露您的个人信息有任何问题,宠科专门为您提供了多种反馈通道,希望为您提供满意的解决方案:</p><p>在线客服:您可在宠科宠物APP【我的】- &gt;【联系客服】的在线客服联系;</p><p>意见反馈:您可在宠科宠物APP【我的】- &gt;【意见反馈】提交意见反馈;</p><p>投诉建议:您可在宠科宠物APP【我的】- &gt;【投诉建议】提交您的建议;</p><p>也可以通过拨打我们的服务电话:400-087-0203 联系我们。我们会在收到您的反馈后尽快向您答复。</p><p>感谢您花时间了解我们的隐私政策!</p><p>宠科智能科技(苏州)有限公司</p>', views: 1234, date: '2026-05-06' }
// 服务条款(402)和Cookie说明(403)为占位内容,已隐藏,待正式内容后恢复
];
// 文章数据
let articles = [...defaultArticles];
// 当前状态
let currentCategory = 'all';
let collapsedSections = {};
// 初始化
document.addEventListener('DOMContentLoaded', function() {
const savedArticles = localStorage.getItem('chookoo_help_articles');
if (savedArticles) {
try {
const parsed = JSON.parse(savedArticles);
if (Array.isArray(parsed) && parsed.length > 0) {
const customArticles = parsed.filter(a => (a.pageType || 'help') === 'legal');
articles.push(...customArticles);
}
} catch (e) {
console.error('加载文章数据失败:', e);
}
}
const urlParams = new URLSearchParams(window.location.search);
const category = urlParams.get('category');
const articleId = urlParams.get('article');
if (articleId) {
showArticle(parseInt(articleId));
} else if (category && categories[category]) {
currentCategory = category;
document.querySelectorAll('.category-tab').forEach(tab => {
tab.classList.toggle('active', tab.dataset.category === category);
});
}
renderArticles();
initSearch();
initCategoryTabs();
initBackButton();
});
function renderArticles() {
const container = document.getElementById('articlesContainer');
let html = '';
const categoryOrder = ['privacy'];
categoryOrder.forEach(cat => {
if (currentCategory !== 'all' && currentCategory !== cat) return;
const catArticles = articles.filter(a => a.category === cat && (!a.pageType || a.pageType === PAGE_TYPE));
if (catArticles.length === 0) return;
const isCollapsed = collapsedSections[cat];
const catInfo = categories[cat];
html += `
<section class="articles-section" data-category="${cat}">
<div class="section-header ${isCollapsed ? 'collapsed' : ''}" onclick="toggleSection('${cat}')">
<div class="section-icon ${cat}">${catInfo.icon}</div>
<h2 class="section-title">${catInfo.name}</h2>
<span class="section-count">${catArticles.length} 篇文章</span>
<svg class="section-toggle" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M6 9l6 6 6-6"/></svg>
</div>
<div class="article-list ${isCollapsed ? 'hidden' : ''}">
${catArticles.map(article => `
<div class="article-item" onclick="showArticle(${article.id})">
<svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"/><polyline points="14 2 14 8 20 8"/><line x1="16" y1="13" x2="8" y2="13"/><line x1="16" y1="17" x2="8" y2="17"/></svg>
<span class="article-title">${article.title}</span>
<svg class="article-arrow" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M9 18l6-6-6-6"/></svg>
</div>
`).join('')}
</div>
</section>
`;
});
container.innerHTML = html;
}
function toggleSection(cat) {
collapsedSections[cat] = !collapsedSections[cat];
renderArticles();
}
function showArticle(id) {
const article = articles.find(a => a.id === id);
if (!article) return;
const content = document.getElementById('articleContent');
content.innerHTML = `
<div class="article-breadcrumb">
<a href="#" onclick="backToList(); return false;">法律条款</a>
<span>/</span>
<span>${article.categoryName}</span>
</div>
<div class="article-detail">
<h1 class="article-title">${article.title}</h1>
<div class="article-meta">
<span class="article-date">${article.date}</span>
<span class="article-views">${article.views} 次阅读</span>
</div>
<div class="article-body">${article.content}</div>
</div>
`;
document.getElementById('articlesContainer').style.display = 'none';
document.getElementById('articlesListView').style.display = 'none';
document.getElementById('articleDetail').style.display = 'block';
document.getElementById('articleDetail').classList.add('active');
history.pushState({ articleId: id }, '', `?article=${id}`);
}
function backToList() {
document.getElementById('articlesContainer').style.display = 'block';
document.getElementById('articlesListView').style.display = 'block';
document.getElementById('articleDetail').style.display = 'none';
document.getElementById('articleDetail').classList.remove('active');
history.pushState({}, '', window.location.pathname);
}
function initBackButton() {
document.getElementById('backToList').addEventListener('click', backToList);
}
function initCategoryTabs() {
document.querySelectorAll('.category-tab').forEach(tab => {
tab.addEventListener('click', function() {
document.querySelectorAll('.category-tab').forEach(t => t.classList.remove('active'));
this.classList.add('active');
currentCategory = this.dataset.category;
renderArticles();
});
});
}
function initSearch() {
const searchInput = document.getElementById('searchInput');
const results = document.getElementById('searchResults');
searchInput.addEventListener('input', function() {
const query = this.value.toLowerCase().trim();
if (query.length < 2) {
results.classList.remove('active');
return;
}
const matched = articles.filter(a =>
(!a.pageType || a.pageType === PAGE_TYPE) &&
(a.title.toLowerCase().includes(query) || a.content.toLowerCase().includes(query))
);
if (matched.length === 0) {
results.innerHTML = '<div class="search-no-result">未找到相关文章</div>';
} else {
results.innerHTML = matched.slice(0, 8).map(a => `
<div class="search-result-item" onclick="showArticle(${a.id})">
<div class="search-result-title">${a.title}</div>
<div class="search-result-category">${a.categoryName}</div>
</div>
`).join('');
}
results.classList.add('active');
});
document.addEventListener('click', function(e) {
if (!searchInput.contains(e.target) && !results.contains(e.target)) {
results.classList.remove('active');
}
});
}
</script>
</div><!-- /pageContent -->
<!-- 购物弹窗 -->
<div class="contact-modal-overlay" id="shopModal" style="position:fixed;inset:0;background:rgba(0,0,0,0.6);backdrop-filter:blur(8px);z-index:2000;display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;transition:all 0.3s ease;">
<div style="background:linear-gradient(180deg,#ffffff 0%,#f8fafc 100%);border-radius:24px;padding:40px;max-width:400px;width:90%;transform:scale(0.9) translateY(20px);transition:transform 0.3s cubic-bezier(0.34,1.56,0.64,1);box-shadow:0 25px 80px rgba(0,0,0,0.25);position:relative;text-align:center;">
<button id="shopModalClose" style="position:absolute;top:16px;right:16px;width:36px;height:36px;border-radius:50%;background:rgba(0,0,0,0.05);border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#6b7280;">
<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line></svg>
</button>
<div style="width:64px;height:64px;margin:0 auto 16px;background:linear-gradient(135deg,#2f6bff 0%,#06b6d4 100%);border-radius:16px;display:flex;align-items:center;justify-content:center;color:#fff;">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" style="width:32px;height:32px;"><circle cx="9" cy="21" r="1"></circle><circle cx="20" cy="21" r="1"></circle><path d="M1 1h4l2.68 13.39a2 2 0 0 0 2 1.61h9.72a2 2 0 0 0 2-1.61L23 6H6"></path></svg>
</div>
<h3 style="font-size:22px;font-weight:700;color:#1f2937;margin:0 0 8px;">官方旗舰店</h3>
<p style="font-size:14px;color:#6b7280;margin:0 0 24px;">扫描二维码,进入官方店铺选购</p>
<div style="display:flex;flex-direction:column;align-items:center;gap:12px;">
<div style="width:160px;height:160px;background:#f3f4f6;border-radius:12px;display:flex;align-items:center;justify-content:center;overflow:hidden;">
<img src="../images/qr-shop.png" alt="旗舰店二维码" onerror="this.parentElement.innerHTML='<span style=\'color:#9ca3af;font-size:14px;\'>请替换店铺二维码<br>qr-shop.png</span>'" />
</div>
</div>
</div>
</div>
<script>
(function(){
var shopModal = document.getElementById('shopModal');
var shopBtn = document.getElementById('shopBtn');
var shopModalClose = document.getElementById('shopModalClose');
if(shopBtn){shopBtn.addEventListener('click',function(e){e.preventDefault();shopModal.style.opacity='1';shopModal.style.visibility='visible';shopModal.querySelector('div').style.transform='scale(1) translateY(0)';document.body.style.overflow='hidden';});}
if(shopModalClose){shopModalClose.addEventListener('click',function(){shopModal.style.opacity='0';shopModal.style.visibility='hidden';shopModal.querySelector('div').style.transform='scale(0.9) translateY(20px)';document.body.style.overflow='';});}
if(shopModal){shopModal.addEventListener('click',function(e){if(e.target===shopModal){shopModal.style.opacity='0';shopModal.style.visibility='hidden';shopModal.querySelector('div').style.transform='scale(0.9) translateY(20px)';document.body.style.overflow='';}});}
document.addEventListener('keydown',function(e){if(e.key==='Escape'&&shopModal&&shopModal.style.visibility==='visible'){shopModal.style.opacity='0';shopModal.style.visibility='hidden';shopModal.querySelector('div').style.transform='scale(0.9) translateY(20px)';document.body.style.overflow='';}});
})();
</script>
<script>
(() => {
const t = {
zh: {
nav_home: "棣栭〉", nav_products: "浜у搧", nav_stories: "鏁呬簨",
nav_app: "App", nav_about: "鍏充簬鎴戜滑", nav_contact: "鑱旂郴鎴戜滑",
footer_desc: "AIoT 涓诲姩寮忓疇鐗╁仴搴风鐞嗗紑鍒涜€咃紝璁╁仴搴峰彲瑙併€侀渶姹傚彲瑙c€佸疇鐖辨棤闂淬€?,
footer_products: "浜у搧", footer_support: "", footer_contact: "鑱旂郴鎴戜滑",
footer_cat: "鏅鸿兘鐚帟鎵", footer_feeder: "鏅鸿兘鍠傞?,
footer_fountain: "鏅鸿兘楗按鏈?, footer_camera: "AI 鎽勫儚澶?,
footer_help: "甯姪涓績", footer_faq: "甯歌闂",
footer_warranty: "淇濅慨鏀跨瓥", footer_returns: "閫€鎹㈣揣",
footer_privacy: "闅愮鏀跨瓥", footer_terms: "鏈嶅姟鏉℃",
footer_copyright: "漏 2025 Chookoo. All rights reserved."
},
en: {
nav_home: "Home", nav_products: "Products", nav_stories: "Stories",
nav_app: "App", nav_about: "About Us", nav_contact: "Contact Us",
footer_desc: "AIoT Pioneer in Proactive Pet Health Management 鈥?making health visible, needs understood, and care seamless.",
footer_products: "Products", footer_support: "Support", footer_contact: "Contact Us",
footer_cat: "Smart Cat Litter", footer_feeder: "Smart Feeder",
footer_fountain: "Smart Fountain", footer_camera: "AI Camera",
footer_help: "Help Center", footer_faq: "FAQ",
footer_warranty: "Warranty", footer_returns: "Returns",
footer_privacy: "Privacy Policy", footer_terms: "Terms of Service",
footer_copyright: "漏 2025 Chookoo. All rights reserved."
}
};
const els = document.querySelectorAll("[data-i18n]");
const s = document.getElementById("langSelect");
const apply = (l) => {
const d = t[l] || t.zh;
els.forEach(el => { const k = el.dataset.i18n; if (d[k]) el.textContent = d[k]; });
if (s) s.value = l;
};
const lang = (navigator.language||"").toLowerCase().startsWith("zh") ? "zh" : "en";
apply(lang);
if (s) s.addEventListener("change", e => apply(e.target.value));
})();
</script>
</body>
</html>