MoeKoe Music Mobile酷狗音乐第三方移动端播放器

# MoeKoe Music Mobile 一款开源、简洁、高颜值的第三方酷狗音乐移动端播放器 基于 Expo / React Native 构建,是 [MoeKoeMusic](https://github.com/iAJue/MoeKoeMusic) 桌面版的移动端实现 🌎 GitHub仓库 | 📦️ 下载安装包 | 💬 访问博客 | 🏠 项目主页 一款开源、简洁、高颜值的第三方酷狗音乐移动端播放器 基于 Expo / React Native 构建,是 MoeKoeMusic 桌面版的移动端实现 ✨ 特性 🎵 无需自建服务器 — 酷狗 API 适配层直接直连官方,开箱即用,不依赖外部 API 地址 🏠 首页推荐 — 每日推荐、精选歌单、排行榜 🧭 发现页 — 分类歌单、新歌速递等内容探索 🔍 搜索 — 快速检索歌曲、歌单、专辑 📀 歌单 / 专辑 / 排行榜 — 完整的详情页与曲目列表 🎧 播放器 — 滚动歌词、播放队列、迷你播放条(MiniPlayer)、后台播放 🎚️ 音质检测 — 自动探测并选择可用音质 📱 手机号登录 — 同步酷狗账号的收藏与歌单 🌗 深色模式 — 跟随系统自动切换明暗主题 📝 Todo List [x] 首页每日推荐 / 精选歌单 / 排行榜 [x] 发现页分类内容浏览 [x] 搜索歌曲、歌单、专辑 [x] 歌单 / 专辑 / 排行榜详情页 [x] 播放器:滚动歌词、播放队列、迷你播放条、后台播放 [x] 音质检测与自动选择 [x] 手机号登录 [x] 账号密码登录 [x] 扫码登录(其他设备) [x] 我喜欢 / 收藏同步 [x] 用户歌单管理(创建 / 收藏 / 编辑) [ ] 通知栏 / 锁屏播放控制 [ ] 歌曲详情浏览 [ ] 桌面歌词 [ ] 听歌识曲 [ ] 平板与横屏适配 [ ] 性能优化 📸 预览 🚀 快速开始 环境要求 Node.js ≥ 22 Git iOS 模拟器 / Android 模拟器,或安装了开发版客户端的真机 开发运行 # 克隆仓库(包含 api submodule) git clone --recurse-submodules https://github.com/MoeKoeMusic/MoeKoeMusic-Mobile.git cd MoeKoeMusic-Mobile # 安装依赖 npm install npm --prefix api install # 生成移动端 API 入口(api/ 更新后需重新执行) npm run generate:mobile-api # 启动开发服务器 npx expo start 如果克隆时遗漏了 submodule,可执行 git submodule update --init 补齐。 ...

August 1, 2026 · 2 min · MoeJue

MoeKoe Music浏览器插件版本,开箱即用

MoeKoe Music Extension MoeKoe Music 浏览器插件版,基于 MoeKoeMusic Web 构建,并在浏览器扩展内完成 API 路由兼容。 🌎 GitHub仓库 特性 点击浏览器插件图标后打开独立窗口运行 MoeKoeMusic。 无需用户配置 API 地址,也无需额外启动本地 API 服务。 保留 MoeKoeMusic 原有 Web 页面与交互,兼容浏览器扩展运行环境。 快速开始 环境要求 Node.js 20 或更高版本 Git Chrome / Edge 等 Chromium 内核浏览器 安装依赖 git submodule update --init --recursive npm install npm run install:app npm run install:app 会分别安装 MoeKoeMusic 与 MoeKoeMusic/api 的依赖。安装后建议检查子模块工作区,避免把上游 lockfile 的非预期变化提交进去。 构建扩展 npm run build 构建产物会输出到: dist/extension 安装到浏览器 打开 chrome://extensions 或 edge://extensions。 启用“开发者模式”。 点击“加载已解压的扩展程序”。 选择本项目下的 dist/extension 目录。 不要加载源码目录 extension,否则浏览器会提示清单或背景脚本加载失败。 ...

July 15, 2026 · 2 min · MoeJue

MoeKoe Music 插件市场设计

在做插件市场之前,先有的是 MoeKoe 的普通插件系统。 当时我想解决的问题不是某一个具体功能,而是一个更通用的问题:播放器里总会冒出很多小需求,有些人想改界面,有些人想加一个工具弹窗,有些人想接自己的服务。如果每个想法都往主程序里塞,主程序会越来越重,也越来越难维护。 所以我一开始给插件系统定的方向很明确:主程序只提供插件运行环境和管理入口,具体功能交给插件自己做。插件能独立安装、独立卸载,坏了也尽量不要影响播放器本体。 上一篇我写的是 MoeKoeMusic-Plugins 这个插件登记仓库。那边解决的是“插件市场的数据怎么产生”:用户用 Issue 提交,Action 校验,维护者审核,通过后写进 plugins.json。 但光有登记仓库还不够。真正对用户来说,插件市场不是 GitHub 上的一份 JSON,而是客户端里一个能看、能搜、能安装、能更新的入口。 所以这篇就换到 MoeKoe Music 主项目里,专门聊客户端的插件市场部分。 为什么选 Chrome Extension 这一套 MoeKoe 是 Electron 应用,Electron 本身就有加载扩展的能力。既然底层已经能跑 Chrome Extension,那就没必要再从零设计一套插件格式。 这样做有几个好处: 第一,插件作者不用学一套完全陌生的格式。manifest.json、popup.html、background.js 都是浏览器扩展里很常见的概念。 第二,插件天然有清单文件。主程序可以先读 manifest.json,判断插件名称、版本、描述、权限、弹窗入口、最低支持版本这些信息。 第三,Electron 可以直接加载插件目录,不需要我自己写一个脚本沙箱。 展示、搜索、分页和状态 插件市场不是只要能安装就行,还要能快速判断: 这个插件是干什么的 我有没有装过 我装的是不是旧版本 这个插件有没有更高版本要求 它有没有联网、文件访问、本地二进制这些风险点 分页,搜索,更新,状态 所以市场卡片里展示的不只是“安装”按钮。 确保插件目录存在 调用Electron下载安装、卸旧版、装新版 注册插件相关 IPC 加载 Chrome 扩展 加载 Native Host 索引和授权系统 已安装插件 插件管理页里的“已安装插件”不是只读 Electron 当前加载的扩展。它会把两类信息合并: session.defaultSession.getAllExtensions() 拿到已加载扩展 scanExtensions() 扫描磁盘插件目录,读取 manifest、图标、popup、Native Host 声明 前端拿到这些字段后,就能显示: 插件名称、描述、版本、作者 图标 是否是 MoeKoe 适配插件 当前客户端版本是否低于插件 minversion 是否有 popup 设置页 是否声明了本地二进制程序 Native Host 这是2.0版本新增的插件功能. 插件系统里最需要小心的是 Native Host,也就是插件附带本地可执行程序的能力。 普通前端插件再怎么折腾,大多还是在浏览器扩展模型里。但本地程序不一样。它一旦启动,就具备普通桌面程序的系统访问能力。 ...

July 5, 2026 · 2 min · MoeJue

# MoeKoeMusic-Plugins Design Philosophy

When I first started building the MoeKoe Music plugin ecosystem, there was no online plugin marketplace feature yet. Later, based on community suggestions, the plugin marketplace came into being [Add official/community plugin repositories to extend product functionality] If plugins can be developed by the community, how should the plugin marketplace be managed? The most straightforward approach would be to pull all plugin source code into a single monorepo. But the more I thought about it, the more awkward it felt. Each plugin has its own author, its own release cadence, its own build process. Stuffing them all into the official repo would not only drive up maintenance costs but also blur the lines of responsibility. ...

June 20, 2026 · 8 min · MoeJue

Web3 On-chain Red Packet DApp

This is a 100% decentralized blockchain red packet application. Users can connect their wallets, set an amount and quantity to send red packets, and then share a link for others to claim. All data and operations are based on the blockchain, completely eliminating the need for centralized servers, making the entire process secure, transparent, and traceable. If you’re interested, you can check out my code on GitHub: redpacket‑dapp Feature Highlights 🧧 Send Red Packet: Connect your wallet, set the amount and quantity, and send a red packet to the blockchain. 🎁 Claim Red Packet: Through a shared link, others can connect their wallets and claim the red packet directly from the blockchain. 🔗 Smart Contract: Secure smart contracts written in Solidity handle all logic. 🌐 Multi-chain Support: Supports local testnet and BSC testnet. 💼 Web3 Integration: Uses MetaMask wallet connection. 🚀 Fully Decentralized: No backend server, all data stored on the blockchain. Tech Stack Frontend: React 19, React Router 6, TypeScript, Vite, Ethers v6 Contract Layer: Hardhat, Solidity 0.8.x Tools: ESLint, Prettier No Backend Required: Zero server dependencies ❌ Quick Start # 1. Install project dependencies npm install cd react-dapp && npm install && cd .. # 2. Start local blockchain node npm run node # 3. Compile smart contracts npx hardhat compile # 4. Deploy smart contracts npm run deploy # 5. Start frontend npm run frontend Directory Structure redpacket-web3/ ├─ contracts/ # Solidity smart contracts │ └─ RedPacket.sol ├─ react-dapp/ # React + Vite frontend │ ├─ src/ │ │ ├─ components/ # Common components (wallet button, create form, etc.) │ │ ├─ config/ # ABI, contract address configuration │ │ ├─ hooks/ # Custom hooks (useWallet) │ │ ├─ pages/ # Pages (Home, ClaimPacket) │ │ ├─ styles/ # Global styles │ │ ├─ utils/ # Web3 utility functions │ │ └─ App.tsx # Routing and layout │ ├─ .env.example # Frontend environment variable instructions │ └─ package.json ├─ scripts/ │ └─ deploy.js # Hardhat deployment script (automatically writes to frontend config) ├─ hardhat.config.js └─ package.json # Root scripts (Hardhat + frontend one-click start) Usage Guide Create a Red Packet Open the frontend and click “Connect Wallet” in the top right corner. Fill in the total red packet amount and number of shares; the application will randomly split the amount on the frontend. Submit and confirm the transaction in MetaMask, then wait for block confirmation. Upon success, copy the system-generated claim link and share it with friends. Claim a Red Packet Open the shared link (URL contains /claim/{packetId}). Connect your wallet first, then click “Claim”. After signing and confirming, wait for the block to be mined. The page will display the result and remaining shares. Environment Variables dapp/.env (automatically ignored in development, please refer to .env.example) VITE_RPC_URL: Frontend direct RPC node, defaults to http://127.0.0.1:8545 VITE_CONTRACT_ADDRESS: Can override the address written by the deployment script VITE_CHAIN_ID: Chain ID (hexadecimal) prompted for use by the frontend root/.env: If you need to reference private keys or BSC RPC in Hardhat, you can continue to use the original syntax. Smart Contract (RedPacket.sol) Core methods: ...

January 10, 2026 · 4 min · MoeJue

I don’t know AE, but I can code

✨ Oyama まひろの小屋 ✨ 🌸 Welcome to Oyama まひろの小屋 🌸 Wow! You discovered my secret base! (*≧ω≦) This is Oyama Misaki’s personal website, full of cute animations and interesting content! I will share my favorite animations, comics, games and some small blessings in daily life here~ 💕 About Me 💕 My name is Oyama Ouyuki, and I love you and I love you. I like anime, comics, light novels and all kinds of cute things! Favorite colors are pink and light blue! ...

August 23, 2025 · 2 min · MoeJue

Build macOS-style web apps

Project Overview In today’s world of web development, user experience and interface design are becoming increasingly important. Mac Web Vue Template This is a modern and elegant Vue.js Web template inspired by macOS design. It is a modern web application template based on Vue.js. Its design is inspired by the elegant interface of macOS. This project not only provides beautiful UI design, but also includes complete project structure and best practices. ...

May 11, 2025 · 2 min · MoeJue

Mengyin Mall mobile version is on sale

Project introduction The mobile version of Mengyin Mall is a multi-terminal mall system developed based on uniapp, supporting multiple platforms such as iOS, Android, H5 and small programs. The system uses PHP + MySQL + FastAdmin as the back-end technology stack to achieve complete e-commerce functions. Core functions Product management: classification, list, detail display Shopping process: shopping cart, settlement, payment, order management User system: member center, personal information management -Multi-merchant model: merchants manage products and orders independently Shipping system: supports pushing orders to ERP (Guan Jia Po) system for processing Dual mode trading: Online ordering and express delivery Order online and pick up in store/delivery by rider System preview Backend management interface ...

April 17, 2025 · 2 min · MoeJue

My 2D photo album is back

From the earliest [Gallery] (https://moejue.cn/archives/10), to [Picture Bed] (https://moejue.cn/archives/61), to the current photo album. My persistence in pictures can be said to have spanned several centuries. The pictures in the gallery were stored in Qiniuyun, but later the traffic was blocked and closed. The Picture Bed is now providing image upload services for blogs. Photo album is the concept of a photo album in a mobile phone. It can store both pictures and videos. Gradually it is becoming more and more perfect. ...

November 8, 2024 · 2 min · MoeJue

An open source, simple and beautiful Kugou third-party client V1.0.0 Beta

MoeKoe Music An open source, simple and beautiful Kugou third-party client 🌎 GitHub repository | 📦️ Download the installation package | 💬 Visit the blog Preface As early as around 10 years ago, when I was using the web version of QQ, I had already started using Kugou Music (and I have been a fan for more than ten years), so all the songs I have collected over the years are on it. Later, I also tried to use NetEase Cloud or QQ Music, and also tried to import Kugou’s playlist, but the results were not satisfactory. Most of the songs I listened to were Japanese comic OPs, and many songs could not be found. ...

November 3, 2024 · 6 min · MoeJue