# wxnn-wx **Repository Path**: sumopenny/wxnn-wx ## Basic Information - **Project Name**: wxnn-wx - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-07-10 - **Last Updated**: 2026-07-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 无限暖暖相册管理微信小程序 这是 `Infinity-Nikki-Album-Manager` 的微信小程序版本,使用原生微信小程序结构实现,保留了桌面端的主要相册管理体验: - 按文件名日期自动分组。 - 抽屉式拍摄日期侧栏,默认收起,打开后可随时关闭,不会长期遮挡相册页面。 - 收藏夹筛选。 - 单张选择、按日期选择、当前视图全选和批量删除。 - 全屏滑动预览、上一张/下一张和预览内删除。 - 底部使用带图标的“相册 / 我的”双页面导航,图标和颜色会随浅色/深色主题切换。 - UID 设置与固定路径展示集中在“我的”页面。 - 相册缩略图使用每行 4 张的紧凑布局,图片下方时间居左、收藏按钮居右。 - 1:1、4:3、16:9、3:4 缩略图比例。 - 浅色/深色主题。 - UID 与收藏记录本地保存。 - 从手机系统相册导入照片,优先读取 JPG/JPEG 图片的 EXIF 原始拍摄时间,导入文件只保存在本机小程序目录,不上传服务器。 ## 固定相册路径 用户设置 UID 后,小程序会按以下固定路径尝试读取: ```text Android/data/com.pagegames.infinitynikki/files/UnrealGame/X6Game/X6Game/Saved/GamePlayPhotos/用户的uid/NikkiPhotos_HighQuality ``` 例如 UID 为 `123456789`: ```text Android/data/com.pagegames.infinitynikki/files/UnrealGame/X6Game/X6Game/Saved/GamePlayPhotos/123456789/NikkiPhotos_HighQuality ``` ## 必须了解的系统限制 微信小程序运行在微信提供的独立文件沙箱中。Android 11 及以上还对 `Android/data` 使用了分区存储限制,因此普通微信小程序通常无法直接遍历其他应用的 `Android/data/...` 目录。 本项目没有伪造目录读取结果,实际处理方式如下: 1. 保存用户 UID 并生成固定相册路径。 2. 点击“读取固定目录”时尝试几个常见 Android 绝对路径。 3. 如果设备和微信环境允许访问,则直接读取并按桌面端规则管理。 4. 如果系统拒绝访问,会明确提示权限限制,并提供“从系统相册导入”入口。 如果无限暖暖截图没有出现在系统相册中,需要先使用手机文件管理器把照片复制到 `Pictures` 或 `DCIM`,再从小程序中导入。要做到无交互直接访问游戏私有目录,需要开发原生 Android 应用或配套原生桥接能力,纯微信小程序无法绕过系统沙箱。 相关官方说明: - 微信小程序文件系统:`https://developers.weixin.qq.com/miniprogram/dev/framework/ability/file-system.html` - Android 11 存储限制:`https://developer.android.com/about/versions/11/privacy/storage` ## 使用方法 1. 用微信开发者工具导入本目录 `wxnn-wx`。 2. 编译并打开首页。 3. 点击底部“我的”,填写 `GamePlayPhotos` 下对应的 UID 目录名并保存。 4. 返回底部“相册”,点击“读取固定目录”尝试读取游戏相册。 5. 如果提示系统目录访问受限,点击“导入照片”从手机系统相册选择图片。 6. 点击顶部主操作行最左侧的菜单按钮展开日期侧栏;选择日期后侧栏会自动收起。 7. 相册缩略图默认每行显示 4 张,点击缩略图打开全屏预览。 ## 删除规则 - 从系统相册导入的照片会复制到小程序本地目录。微信小程序没有删除手机系统相册原图的接口,因此删除时只能删除小程序副本,并提醒用户到手机相册手动删除原图。 - 如果某个设备环境允许直接读取并写入固定游戏目录,删除固定目录照片时会删除对应原图。 - 所有删除操作都会先弹出确认框。 ## 照片日期规则 固定目录照片优先从无限暖暖文件名解析日期,例如: ```text 2026_06_26_11_22_58_6316602.jpeg ``` 支持的图片扩展名包括: ```text jpg, jpeg, png, webp, gif, bmp ``` 扩展名判断不区分大小写,因此 `.jpeg` 和 `.JPEG` 均可读取。 从系统相册导入时,微信接口不会直接返回拍摄日期字段,但选择的原始 JPG/JPEG 临时文件通常仍保留 EXIF。本项目会读取 `DateTimeOriginal`、`DateTimeDigitized` 和 `DateTime`,按这个优先级使用原始拍摄时间;无法读取 EXIF 时回退到文件时间或导入时间。旧版本已经导入的本地副本也会在下次打开相册时自动尝试补充 EXIF 日期。 ## 项目结构 ```text . ├─ app.js ├─ app.json ├─ app.wxss ├─ pages/ │ ├─ index/ # 相册页 │ │ ├─ index.js │ │ ├─ index.json │ │ ├─ index.wxml │ │ └─ index.wxss │ └─ profile/ # 我的:UID 与固定路径 │ ├─ index.js │ ├─ index.json │ ├─ index.wxml │ └─ index.wxss ├─ services/ │ └─ album-service.js ├─ assets/ │ └─ tabbar/ # 深浅色底部导航图标 └─ utils/ ├─ constants.js ├─ date.js ├─ exif.js ├─ storage.js └─ theme.js ``` ## 数据与隐私 - 项目不包含后台接口。 - 照片、UID、收藏和目录记录均保存在本机。 - 小程序本地文件空间有限,高质量截图较大时应分批导入并及时整理。 - 每次调用系统相册选择器最多选择 9 张,可重复导入。 ## 开发检查 项目没有 npm 依赖。可使用 Node.js 检查 JavaScript 语法: ```powershell Get-ChildItem -Recurse -Filter *.js | ForEach-Object { node --check $_.FullName } ``` 最终界面、权限提示和真机文件访问结果需要在微信开发者工具及 Android 真机上验证。