<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>Nico (Nico)</title>
    <link>http://beta.w2solo.com/Nico</link>
    <description></description>
    <language>en-us</language>
    <item>
      <title>News In Simple - 基于 AI 的每日分级新闻阅读站 (Level 1-3 / 词汇提取 / 适合精读)</title>
      <description>&lt;p&gt;最近开发了一个新产品：News In Simple。
&lt;a href="https://newsinsimple.com/" rel="nofollow" target="_blank"&gt;https://newsinsimple.com/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src="https://img.way2solo.com/photo/Nico/92060d1b-11ad-411f-8262-6fe194ad3292.png?imageView2/2/w/1920/q/100" title="" alt=""&gt;&lt;/p&gt;

&lt;p&gt;今天想和大家深度聊聊这个产品，以及它背后关于英语学习的思考。&lt;/p&gt;

&lt;p&gt;我们在学英语时，常常陷入一种割裂：我们在课本里学的是一种英语，现实世界里用的却是另一种。 我们习惯了为了考试而学习被阉割过的句子，却在面对真实的 CNN 新闻、YouTube 视频时手足无措。&lt;/p&gt;

&lt;p&gt;这种割裂感的根源在于：缺乏真实且可理解的语境（Real World Context）。&lt;/p&gt;

&lt;p&gt;News In Simple 的诞生，就是为了填补这道鸿沟。我们不生产死板的教条，我们只做真实世界的搬运工和加工者。&lt;/p&gt;

&lt;p&gt;一、News 模块：不只是 “分级阅读”，而是 “认知降维”&lt;/p&gt;

&lt;p&gt;目前已经上线的 News 模块，是我们对 “输入（Input）” 环节的重构。很多朋友问，市面上新闻 App 那么多，为什么还要做一个？&lt;/p&gt;

&lt;p&gt;因为直接扔给你一篇生肉新闻，不是学习，是折磨。&lt;/p&gt;

&lt;p&gt;我们在 News 模块的设计中，注入了三个层次的思考：&lt;/p&gt;

&lt;p&gt;认知的阶梯：Comprehensible Input（可理解性输入）
语言学家克拉申说过，只有当你能理解大部分内容时，习得才会发生。
每一篇抓取自真实世界的热点新闻，我们都通过 AI 进行了严格的分级重写：&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Level 1 (Beginner)：我们将复杂的长难句拆解，用基础词汇重述。这是为了让你建立信心——原来读懂国际新闻并不难。&lt;/li&gt;
&lt;li&gt;Level 2 (Intermediate)：增加从句与常用搭配，这是大多数学习者突破瓶颈期的最佳舒适区。&lt;/li&gt;
&lt;li&gt;Level 3 (Advanced)：保留原汁原味的修辞与地道表达，供高阶用户挑战。
我们的目的，是让内容主动适应你的水平，而不是让你痛苦地去适应内容。
&lt;img src="https://img.way2solo.com/photo/Nico/62cca7a6-508c-4693-8304-d88f11a1c9af.png?imageView2/2/w/1920/q/100" title="" alt=""&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;视听的闭环：从文字到视频的平滑过渡
文字是平面的，视频才是立体的。News In Simple 的核心特色在于 YouTube Video 的深度整合。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Step 1：你先阅读分级后的文字稿，扫清理解障碍。&lt;/li&gt;
&lt;li&gt;Step 2：你点击播放页面内嵌入的原版视频。&lt;/li&gt;
&lt;li&gt;Step 3：神奇的事情发生了——因为有了文字铺垫，你发现自己竟然能听懂那个语速飞快的 YouTuber 在说什么了。
这种&lt;strong&gt;“读懂 -&amp;gt; 听懂”&lt;/strong&gt;的即时正反馈，能带来巨大的多巴胺，让你对英语学习上瘾。同时，我们也配备了真人感的朗读音频，方便你进行 Shadowing（影子跟读）训练。&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;焦点的锁定：Key Vocabulary &amp;amp; Quiz
在海量信息中，我们利用 AI 帮你筛选出这篇新闻中最值得学的关键词汇。配合读后的 Quick Quiz（小测验），确保你不仅仅是 “看过了”，而是真正 “吸收了”。&lt;/p&gt;

&lt;hr&gt;

&lt;p&gt;二、Word Insight：拒绝 “尸体” 般的释义，重构 “查词” 体验（开发中）&lt;/p&gt;

&lt;p&gt;在 News 模块之外，我们正在从零思考：一个完美的 “查词” 体验应该是怎样的？&lt;/p&gt;

&lt;p&gt;传统的电子词典，给你的是一个单词的 “尸体”——冰冷的解释，枯燥的例句。而在我们即将推出的 Word Insight 中，我们要让单词 “活” 过来：&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Anki 记忆哲学的融合：我们完全认同 Anki 卡片式记忆的有效性。每一个你查询的词，都会自动转化通过精美记忆卡片，包含助记图片和间隔复习逻辑。&lt;/li&gt;
&lt;li&gt;语境的无限扩展：单词不该孤立存在。我们会展示它的同义词、反义词，更重要的是，通过 Quiz 互动让你理解它在不同场景下的微妙差别。&lt;/li&gt;
&lt;li&gt;多媒体语料库：查单词时，你看到的不仅仅是文字，而是这个词在电影台词中的片段，是 YouTube 视频里的真实发音。&lt;/li&gt;
&lt;li&gt;Story Generator（故事生成器）：这是最有趣的部分。利用生成式 AI，你可以把刚查过的单词变成素材，生成一个有趣的侦探故事或职场笑话。你在读故事的过程中，不知不觉就把这个词 “用” 了一遍。&lt;/li&gt;
&lt;/ul&gt;

&lt;hr&gt;

&lt;p&gt;三、Core Lexicon AI：寻找英语的 “源代码”（开发中）&lt;/p&gt;

&lt;p&gt;最后，是关于 “词汇量” 的终极解决方案。&lt;/p&gt;

&lt;p&gt;很多人背单词是从 A 到 Z，或者漫无目的地背。但这很低效。语言学统计告诉我们，掌握最核心的 3000-4000 个高频词，就能覆盖 85% 以上的日常交流。&lt;/p&gt;

&lt;p&gt;Core Lexicon 模块就是基于 Longman 3000、GSL、ESS 4000 等权威频次表打造的 “数据驱动” 学习系统：&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;数据驱动的精准：我们剔除了一辈子见不到一次的生僻词，确保你投入的每一分钟，都在掌握英语的 “核心源代码”。&lt;/li&gt;
&lt;li&gt;语义星系（Semantic Galaxy）：拒绝列表。我们用知识图谱展示词与词的关系（搭配、词根、联想）。学习一个词，是为了牵出一串词。&lt;/li&gt;
&lt;li&gt;沉浸式输出：这是 AI 最大的优势。

&lt;ul&gt;
&lt;li&gt;AI Roleplay：设定一个场景，强迫你在对话中使用今日所学的核心词。&lt;/li&gt;
&lt;li&gt;Podcast 生成：一键把你生词本里的词，变成一段 AI 双人对谈的播客。通勤路上，用耳朵复习你的专属词单。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;hr&gt;

&lt;p&gt;结语&lt;/p&gt;

&lt;p&gt;News In Simple 不仅仅是一个网站，它是我们对&lt;strong&gt;“未来语言学习方式”&lt;/strong&gt;的一次提案。&lt;/p&gt;

&lt;p&gt;我们相信：
素材必须来自 Real World（新闻与视频）；
工具必须足够 Smart（AI 分级与生成）；
体验必须足够 Human（有趣、自然、有反馈）。&lt;/p&gt;

&lt;p&gt;目前 News 模块已完全免费开放。欢迎你来体验，看看当 “真实世界” 遇到 “人工智能”，会给你的英语学习带来怎样的改变。&lt;/p&gt;

&lt;p&gt;产品在这里，欢迎来玩：&lt;a href="https://newsinsimple.com/" rel="nofollow" target="_blank"&gt;https://newsinsimple.com/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src="https://img.way2solo.com/photo/Nico/a62ddefe-1a83-4322-b5d2-9d51824608d1.png?imageView2/2/w/1920/q/100" title="" alt=""&gt;&lt;/p&gt;</description>
      <author>Nico</author>
      <pubDate>Tue, 16 Dec 2025 14:13:35 +0800</pubDate>
      <link>http://beta.w2solo.com/topics/6652</link>
      <guid>http://beta.w2solo.com/topics/6652</guid>
    </item>
    <item>
      <title>一个无聊放空的空格键点击放置游戏，越点越放空，专治无聊。</title>
      <description>&lt;p&gt;自己写的一个无聊放空的空格键点击放置游戏，越点越放空，专治无聊。&lt;/p&gt;

&lt;p&gt;1️⃣ 开局狂敲空格，攒点买橡皮垫片挂机。&lt;/p&gt;

&lt;p&gt;2️⃣ 解锁机械键盘、程序员之手、黄金指，手动输出翻倍。&lt;/p&gt;

&lt;p&gt;3️⃣ 购入自动连点器、电竞战队、AI 助手，一路飙到量子键盘。&lt;/p&gt;

&lt;p&gt;4️⃣ 终极目标：Cosmic Click Matrix，每秒 2.5 万次宇宙连点。&lt;/p&gt;

&lt;p&gt;立即免费开玩：&lt;a href="https://spacebarclickers.online/" rel="nofollow" target="_blank" title=""&gt;https://spacebarclickers.online/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src="https://img.way2solo.com/photo/Nico/35677919-4eea-4d69-b926-c806b3b13855.png?imageView2/2/w/1920/q/100" title="" alt=""&gt;
&lt;img src="https://img.way2solo.com/photo/Nico/f6aba27f-07e5-4eac-8622-32cb7726e76d.png?imageView2/2/w/1920/q/100" title="" alt=""&gt;
&lt;img src="https://img.way2solo.com/photo/Nico/9247cf05-650e-4798-949e-3c07ea1a7cfe.png?imageView2/2/w/1920/q/100" title="" alt=""&gt;&lt;/p&gt;</description>
      <author>Nico</author>
      <pubDate>Fri, 08 Aug 2025 09:59:03 +0800</pubDate>
      <link>http://beta.w2solo.com/topics/6086</link>
      <guid>http://beta.w2solo.com/topics/6086</guid>
    </item>
    <item>
      <title>Wordless: 一个周末打造的小爆游戏</title>
      <description>&lt;p&gt;这个项目是什么&lt;/p&gt;

&lt;p&gt;Wordless 就是个类似 Wordle 的猜单词游戏，用 Next.js 搭建的。玩家有 6 次机会猜出单词，支持 3 到 8 个字母的单词。说实话，开始只是想做点跟 wordle 不一样东西，没想到做着做着就越来越有意思了。
&lt;img src="https://img.way2solo.com/photo/Nico/f8a87c25-e89f-4e62-bb64-cdc72709512d.png?imageView2/2/w/1920/q/100" title="" alt=""&gt;&lt;/p&gt;

&lt;p&gt;点击这里可以体验：&lt;a href="https://wordless.online/" rel="nofollow" target="_blank" title=""&gt;https://wordless.online/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;我用了一个周末把代码撸完以后，直接发布上线，也没怎么关注，没想到几个月过去了，这个小游戏的流量一直很稳定，有 50% 的自然搜索，40% 的直接访问流量，这可是个非常漂亮的流量数据呀。
&lt;img src="https://img.way2solo.com/photo/Nico/01fe9a97-f391-40e3-b3db-3f214c975683.png?imageView2/2/w/1920/q/100" title="" alt=""&gt;&lt;/p&gt;

&lt;p&gt;用了什么技术&lt;/p&gt;

&lt;p&gt;主要框架&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;React 18.3.1 - 没什么好说的，前端必备&lt;/li&gt;
&lt;li&gt;Next.js 14.2.4 - 选它主要是因为 SSR 和 API 路由很方便&lt;/li&gt;
&lt;li&gt;TypeScript - 虽然写起来麻烦点，但能避免很多低级错误&lt;/li&gt;
&lt;li&gt;Tailwind CSS - 写样式贼快，不用想类名&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;UI 相关&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Radix UI - 弹窗、通知这些组件用的，无障碍做得不错&lt;/li&gt;
&lt;li&gt;Lucide React - 图标库，简洁好看&lt;/li&gt;
&lt;li&gt;Canvas Confetti - 猜对了撒彩带的特效，挺有意思的&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;其他工具&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;SWR - 数据获取用的，缓存机制不错&lt;/li&gt;
&lt;li&gt;Zod - 数据验证，比手写 if-else 强多了&lt;/li&gt;
&lt;li&gt;nspell - 检查单词拼写是否正确&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;文件结构&lt;/p&gt;

&lt;p&gt;wordlessgame/
├── src/
│   ├── app/                    # Next.js App Router
│   │   ├── api/               # API 路由
│   │   │   ├── ai-completion/ # AI 辅助功能
│   │   │   ├── validate-word/ # 单词验证
│   │   │   └── words/        # 单词生成
│   │   ├── layout.tsx        # 根布局
│   │   └── page.tsx         # 主页面
│   ├── components/           # React 组件
│   │   ├── ui/              # 基础 UI 组件
│   │   ├── game-grid.tsx    # 游戏网格
│   │   ├── key-board.tsx    # 虚拟键盘
│   │   └── result-modal.tsx # 结果弹窗
│   ├── data/                # 静态数据
│   │   └── word-lists.ts    # 单词词库
│   ├── lib/                 # 工具函数
│   │   ├── api.ts          # API 调用
│   │   └── utils.ts        # 工具函数
│   ├── ai/                 # AI 相关功能
│   └── styles/             # 样式文件
└── public/                 # 静态资源&lt;/p&gt;

&lt;p&gt;核心功能实现&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;游戏状态管理&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;游戏使用 React Hooks 管理复杂的状态：&lt;/p&gt;

&lt;p&gt;// 主要状态
const [columns, setColumns] = useState(3);           // 单词长度
const [gridContent, setGridContent] = useState([]); // 网格内容
const [currentCell, setCurrentCell] = useState(-1);  // 当前输入位置
const [word, setWord] = useState('');                // 目标单词
const [matchResults, setMatchResults] = useState([]); // 匹配结果
const [cellMatchClasses, setCellMatchClasses] = useState([]); // 样式类&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;单词生成系统&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;采用优化的单词生成器，避免重复选择同一单词：&lt;/p&gt;

&lt;p&gt;class WordGenerator {
  private static instance: WordGenerator;
  private readonly cache: Map = new Map();
  private readonly usedIndices: Map&amp;gt; = new Map();
  private readonly shuffledIndices: Map = new Map();&lt;/p&gt;

&lt;p&gt;public getRandomWord(length: number): string {
    // Fisher-Yates 洗牌算法确保随机性
    // 避免重复选择相同单词
  }
}&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;游戏逻辑算法
const matchWord = (guessedWord: string, targetWord: string) =&amp;gt; {
const result = new Array(guessedWord.length).fill('X'); // X=不匹配
const targetCounts = new Map();
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;// 第一遍：标记完全匹配的字母
  for (let i = 0; i &amp;lt; guessedWord.length; i++) {
    if (guessedWord[i] === targetWord[i]) {
      result[i] = 'C'; // C=正确位置
    } else {
      targetCounts.set(targetWord[i]!, (targetCounts.get(targetWord[i]!) || 0) + 1);
    }
  }&lt;/p&gt;

&lt;p&gt;// 第二遍：标记位置错误的字母
  for (let i = 0; i &amp;lt; guessedWord.length; i++) {
    if (result[i] !== 'C') {
      const char = guessedWord[i]!;
      if (targetCounts.get(char)! &amp;gt; 0) {
        result[i] = 'P'; // P=位置错误
        targetCounts.set(char, targetCounts.get(char)! - 1);
      }
    }
  }&lt;/p&gt;

&lt;p&gt;return result;
};&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;游戏网格组件&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;export function GameGrid({
  gridContent,
  columns,
  currentCell,
  cellMatchClasses,
  flippingRows
}: GameGridProps) {
  return (
    &lt;/p&gt;
      {gridContent.map((content, index) =&amp;gt; {
        const matchClass = cellMatchClasses[index];
        const isFlipping = flippingRows.has(Math.floor(index / columns));

&lt;p&gt;return (
          &lt;/p&gt;

            {content}
          
        );
      })}
    
  );
}

&lt;ol&gt;
&lt;li&gt;虚拟键盘组件&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;使用 memo 优化渲染性能：&lt;/p&gt;

&lt;p&gt;const KeyButton = memo(({ 
  letter, 
  isMatched, 
  noMatched, 
  onClick 
}: KeyButtonProps) =&amp;gt; {
  return (
     onClick(letter)} 
      className={cn(
        'w-14 h-14 rounded-md font-bold transition-colors',
        isMatched ? 'bg-green-500 text-white' : 
        noMatched ? 'bg-zinc-400 text-white' : 
        'bg-white hover:bg-violet-50'
      )}
    &amp;gt;
      {letter}
    
  );
});&lt;/p&gt;

&lt;p&gt;数据结构&lt;/p&gt;

&lt;p&gt;单词词库
词库按长度分类存储，每个长度包含 500+ 个单词：&lt;/p&gt;

&lt;p&gt;export const WORD_LISTS: Record = {
  3: ['ace', 'age', 'air', ...], // 500+ 三字母单词
  4: ['able', 'acid', 'aged', ...], // 500+ 四字母单词
  5: ['about', 'above', 'abuse', ...], // 500+ 五字母单词
  6: ['abroad', 'accept', 'access', ...], // 500+ 六字母单词
  7: ['abandon', 'ability', 'absence', ...], // 500+ 七字母单词
  8: ['absolute', 'academic', 'accepted', ...] // 500+ 八字母单词
};&lt;/p&gt;

&lt;p&gt;API 设计&lt;/p&gt;

&lt;p&gt;Edge Runtime API
使用 Next.js Edge Runtime 提供快速的 API 响应：&lt;/p&gt;

&lt;p&gt;export const runtime = 'edge';&lt;/p&gt;

&lt;p&gt;export async function GET(request: NextRequest) {
  // API 逻辑
  return NextResponse.json({ data });
}&lt;/p&gt;

&lt;p&gt;用户体验优化&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;动画效果&lt;/li&gt;
&lt;li&gt;卡片翻转动画：使用 CSS animate-flip 类&lt;/li&gt;
&lt;li&gt;按键反馈：按键按下时的视觉反馈&lt;/li&gt;
&lt;li&gt;&lt;p&gt;胜利庆祝：使用 canvas-confetti 库&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;响应式设计&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;移动端优化的键盘布局&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;自适应网格大小&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;触摸友好的交互&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;性能优化&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;使用 React.memo 减少不必要的重渲染&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;useCallback 和 useMemo 优化函数和计算&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;单词生成器的缓存机制&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;部署和 SEO&lt;/p&gt;

&lt;p&gt;SEO 优化
export const metadata: Metadata = {
  title: "Unlimited Wordless Online: Guess the Word in 6 Tries!",
  description: "Wordless Online: Endless Word Challenges...",
  keywords: "wordless,wordly, wordle, game, puzzle, word, words, letters, play, online, guess，unlimited",
};&lt;/p&gt;

&lt;p&gt;分析工具&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Google Analytics 用户行为追踪&lt;/li&gt;
&lt;li&gt;自定义事件追踪&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;开发工具&lt;/p&gt;

&lt;p&gt;代码质量&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;ESLint - 代码规范检查&lt;/li&gt;
&lt;li&gt;Prettier - 代码格式化&lt;/li&gt;
&lt;li&gt;TypeScript - 类型安全&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;包管理&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;PNPM - 快速、节省磁盘空间的包管理器&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;游戏流程&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;初始化：选择单词长度（3-8 个字母）&lt;/li&gt;
&lt;li&gt;生成目标单词：从词库中随机选择&lt;/li&gt;
&lt;li&gt;用户输入：通过虚拟键盘或物理键盘输入&lt;/li&gt;
&lt;li&gt;验证输入：检查是否为有效单词&lt;/li&gt;
&lt;li&gt;匹配算法：计算字母匹配情况&lt;/li&gt;
&lt;li&gt;视觉反馈：显示颜色提示（绿色=正确位置，黄色=错误位置，灰色=不存在）&lt;/li&gt;
&lt;li&gt;游戏结束：6 次尝试后或猜中单词后结束&lt;/li&gt;
&lt;li&gt;结果展示：显示结果弹窗和庆祝动画&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;特色功能&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;可变单词长度
支持 3-8 个字母的单词，增加游戏难度选择&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;智能单词生成
避免重复，确保每次游戏都有新鲜感&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;实时反馈
即时的视觉和交互反馈，提升用户体验&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;无限游戏
没有次数限制，可以连续游戏&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;响应式设计
适配各种设备屏幕尺寸&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;技术亮点&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;现代化技术栈：使用最新的 React、Next.js 和 TypeScript&lt;/li&gt;
&lt;li&gt;性能优化：多层次的性能优化策略&lt;/li&gt;
&lt;li&gt;可维护性：清晰的代码结构和组件分离&lt;/li&gt;
&lt;li&gt;用户体验：流畅的动画和交互效果&lt;/li&gt;
&lt;li&gt;可扩展性：模块化设计便于功能扩展&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;总结
Wordless 是一款用现代 Web 技术打造的游戏，干净利落，跑得飞快，代码还容易维护。没堆花里胡哨的东西，但该有的全都有——好玩、流畅、写得明白。
欢迎来体验： &lt;a href="https://wordless.online/" rel="nofollow" target="_blank" title=""&gt;https://wordless.online/&lt;/a&gt;&lt;/p&gt;</description>
      <author>Nico</author>
      <pubDate>Sat, 21 Jun 2025 07:49:30 +0800</pubDate>
      <link>http://beta.w2solo.com/topics/5913</link>
      <guid>http://beta.w2solo.com/topics/5913</guid>
    </item>
    <item>
      <title>Microsoft Edge 插件上架发布全流程指南</title>
      <description>&lt;p&gt;在前两篇文章中，我分别讲解了如何将产品上架到 Chrome Web Store 和 Firefox Add-ons。今天，我们将继续探索另一个重要的浏览器插件市场——Microsoft Edge 插件商店。如果你已经熟悉 Chrome 和 Firefox 插件的上架流程，那么这篇文章会让你更快上手 Edge 插件的发布。同时，我也会在关键环节与 Chrome 和 Firefox 进行对比，帮助你更好地理解三者的异同。 　&lt;/p&gt;

&lt;p&gt;　&lt;/p&gt;

&lt;p&gt;　&lt;/p&gt;

&lt;p&gt;一、注册 Microsoft Edge 开发者账号
　&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;为什么要注册？
Microsoft Edge 插件商店是 Edge 浏览器的官方插件市场，只有注册开发者账号才能发布插件。 　&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;这里不得不吐槽一下，Microsoft 的产品体系特别多，几乎每一个体系都有一个独立的开发者注册，而且入口非常隐秘，一般人找不到。　&lt;/p&gt;

&lt;p&gt;　&lt;/p&gt;

&lt;p&gt;大概流程是这样：　
&lt;img src="https://img.way2solo.com/photo/Nico/a1d31fec-d272-473b-a37a-d407bce0f5d6.png?imageView2/2/w/1920/q/100" title="" alt=""&gt;&lt;/p&gt;

&lt;p&gt;　&lt;/p&gt;

&lt;p&gt;Image&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;注册步骤
访问 Microsoft Edge 开发者中心：&lt;a href="https://partner.microsoft.com/zh-cn/dashboard/microsoftedge/" rel="nofollow" target="_blank"&gt;https://partner.microsoft.com/zh-cn/dashboard/microsoftedge/&lt;/a&gt;
使用 Microsoft 账号登录（如果没有，先注册一个）。
同意开发者协议，完成注册。
　&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;当你成功开通了 Parter 账号以后，这里不得不提一下 开通 Edge 开发者的讨厌入口了：　&lt;/p&gt;

&lt;p&gt;Setting ——&amp;gt; Account Settings ——&amp;gt; Programs ——&amp;gt; Edge, 选择 Start　&lt;/p&gt;

&lt;p&gt;&lt;img src="https://img.way2solo.com/photo/Nico/2940a63e-cfc3-48cb-b98c-7bf15811e592.png?imageView2/2/w/1920/q/100" title="" alt=""&gt;&lt;/p&gt;

&lt;p&gt;这个路径非常非常复杂，如果你已经开通了，则是下面这个样子：　
&lt;img src="https://img.way2solo.com/photo/Nico/caf03ff2-ab94-4f8d-9b0d-79068d7f67d4.png?imageView2/2/w/1920/q/100" title="" alt=""&gt;&lt;/p&gt;

&lt;p&gt;好不容易找到了路径，要开通 Edge 了，这时候需要你填写一堆的表单，你有 90% 的可能性会遇到一个表单无法提交的问题：这个其实是 Edge 在这个页面上一个 bug，就是「省份」这个字段必须要填写代号，例如广东省，你必须填写「GD」，而不是「广东」。这个问题折磨了我好几天，后面是实在没招了，去找 DeepSeek 提问，它给了我线索搞定的。　&lt;/p&gt;

&lt;p&gt;不得不感叹，AI 把这个答案放到了第一位，说明 Edge 这个问题多么常见，微软这产品做的确实不咋样。　
&lt;img src="https://img.way2solo.com/photo/Nico/fe6a809b-1379-41ba-b44e-7872bbdd42e4.png?imageView2/2/w/1920/q/100" title="" alt=""&gt;&lt;/p&gt;

&lt;p&gt;　&lt;/p&gt;

&lt;p&gt;这里可以阶段性把 Edge 与 Chrome 和 Firefox 对比： 　&lt;/p&gt;

&lt;p&gt;费用：Edge 注册完全免费，而 Chrome 需要支付 5 美元，Firefox 也是免费。
账号类型：Edge 使用 Microsoft 账号，Chrome 需绑定 Google 账号，Firefox 则使用普通邮箱注册。
操作方便度：Edge 是最麻烦的，响应速度也最慢，其他两个都很直观。
　&lt;/p&gt;

&lt;p&gt;　&lt;/p&gt;

&lt;p&gt;二、打包你的插件
　&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;准备插件文件
Edge 插件的文件结构与 Chrome 几乎完全一致，通常包括： 　&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;manifest.json：插件的配置文件，定义名称、版本、权限等信息。
图标、脚本、样式等资源文件。
　&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;编写 manifest.json
Edge 的 manifest.json 与 Chrome 完全兼容，以下是一个简单的示例： 　&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;{
  "manifest_version": 3,
  "name": "我的插件",
  "version": "1.0",
  "description": "这是一个示例插件。",
  "icons": {
    "128": "icon.png"
  },
  "action": {
    "default_popup": "popup.html"
  },
  "permissions": ["activeTab"]
}
　&lt;/p&gt;

&lt;p&gt;这个点上比较爽的是：Edge 完全支持 Chrome 的 manifest.json 格式，因此你可以直接使用为 Chrome 开发的插件文件，几乎不需要任何改动，而 Firefox 还是多多少少要做点兼容适配的。 　&lt;/p&gt;

&lt;p&gt;　&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;打包插件
将所有文件放入一个文件夹。
将文件夹压缩为 .zip 文件。
　&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;小提示：与 Chrome 和 Firefox 一样，确保 manifest.json 文件位于压缩包的根目录。 　&lt;/p&gt;

&lt;p&gt;　&lt;/p&gt;

&lt;p&gt;　&lt;/p&gt;

&lt;p&gt;三、提交插件并填写信息
　&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;登录开发者中心
访问 &lt;a href="https://partner.microsoft.com/zh-cn/dashboard/microsoftedge/" rel="nofollow" target="_blank"&gt;https://partner.microsoft.com/zh-cn/dashboard/microsoftedge/&lt;/a&gt;，使用注册的账号登录。 　&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;上传插件
点击 “新建扩展”，上传打包好的 .zip 文件。
填写插件的基本信息：
名称：插件的名称（不超过 45 个字符）。
简短描述：一句话介绍插件功能（不超过 80 个字符）。
详细描述：详细说明插件的功能和使用场景。
图标：建议尺寸为 128x128 像素。
宣传图片：至少 1 张，尺寸为 1280x800 或 640x400 像素。
隐私政策：提供隐私政策 URL，说明数据收集和使用情况。
　&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;上传包以后，按照这个节目一点点去提交信息，这个过程完全可以复用 chrome 的信息，还是比较简单的。　&lt;/p&gt;

&lt;p&gt;&lt;img src="https://img.way2solo.com/photo/Nico/ac8a21cb-286d-4a4e-bb3b-54568e61949e.png?imageView2/2/w/1920/q/100" title="" alt=""&gt;&lt;/p&gt;

&lt;p&gt;　&lt;/p&gt;

&lt;p&gt;提交完基本信息以后，就需要上传素材，这里又不得不重点说一下入口：Store Listings ——&amp;gt; Edit details　
&lt;img src="https://img.way2solo.com/photo/Nico/7dc73253-3a6f-415d-b1ef-32f0c7620390.png?imageView2/2/w/1920/q/100" title="" alt=""&gt;&lt;/p&gt;

&lt;p&gt;　&lt;/p&gt;

&lt;p&gt;　&lt;/p&gt;

&lt;p&gt;与 Chrome 和 Firefox 对比： 　&lt;/p&gt;

&lt;p&gt;信息填写：Edge 的信息填写流程与 Chrome 几乎一致，但界面设计更现代化。Firefox 的界面则更简洁。
隐私政策：三者都要求提供隐私政策 URL，但 Edge 对隐私政策的审查相对更严格。
关键操作入口： Edge 依然是不够直观的，其他两个都挺方便
　&lt;/p&gt;

&lt;p&gt;　&lt;/p&gt;

&lt;p&gt;四、审核与发布
　&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;提交审核
填写完所有信息后，点击 “提交审核”。Microsoft 团队会对插件进行审核，通常需要 3～5 天。 　&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;　&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;审核内容
审核团队会重点关注以下几点： 　&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;功能合规性：插件是否符合 Microsoft 的政策。
权限使用：插件申请的权限是否合理。
隐私保护：隐私政策是否完整，数据使用是否透明。
　&lt;/p&gt;

&lt;p&gt;与 Chrome 和 Firefox 对比： 　&lt;/p&gt;

&lt;p&gt;审核时间：Edge 的审核时间通常比 Chrome 稍长，但比 Firefox 稍慢。
审核标准：三者都注重功能合规性和隐私保护，但 Edge 对权限使用的审查和 chrome 相似。但是不像 chrome 那样要填写一大堆的权限说明，这个是比较方便的。
　&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;审核结果
通过：插件将自动发布到 Microsoft Edge 插件商店。
被拒：你会收到邮件，说明被拒原因。根据反馈修改后，重新提交即可。
&lt;img src="https://img.way2solo.com/photo/Nico/fadd176b-1940-4fe2-882a-9ff3ff2acfef.png?imageView2/2/w/1920/q/100" title="" alt=""&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;　&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;发布成功
审核通过后，你的插件将正式上线！用户可以在 Microsoft Edge 插件商店中搜索并安装你的插件。 　&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;　&lt;/p&gt;

&lt;p&gt;　&lt;/p&gt;

&lt;p&gt;五、后续更新
　&lt;/p&gt;

&lt;p&gt;如果需要更新插件，只需在开发者中心上传新版本，并提交审核。更新审核通常比初次审核更快，约 1-2 天 即可完成。 　&lt;/p&gt;

&lt;p&gt;　&lt;/p&gt;

&lt;p&gt;　&lt;/p&gt;

&lt;p&gt;总结
　&lt;/p&gt;

&lt;p&gt;通过这篇文章，我们已经详细介绍了掌握了从注册、打包、审核到发布 Edge 插件的全流程。如果你已经熟悉 Chrome 和 Firefox 插件的上架流程，那么 Edge 插件商店的操作会更加轻松，因为 Edge 完全兼容 Chrome 插件技术架构。 　&lt;/p&gt;

&lt;p&gt;　&lt;/p&gt;

&lt;p&gt;接下来，只需按照步骤操作，就能让你的产品成功上架 Microsoft Edge 插件商店，触达更多用户！ 　&lt;/p&gt;

&lt;p&gt;　&lt;/p&gt;

&lt;p&gt;如果你在过程中遇到问题，欢迎在评论区留言，我会尽力为你解答！ 　&lt;/p&gt;

&lt;p&gt;　&lt;/p&gt;

&lt;p&gt;最后，再次推荐下我自己的小产品：　&lt;/p&gt;

&lt;p&gt;EmojiClick： &lt;a href="https://emojis.click/" rel="nofollow" target="_blank" title=""&gt;https://emojis.click/&lt;/a&gt;
EmojiClick Toolbar（chrome）：&lt;a href="https://chromewebstore.google.com/detail/emojiclick-toolbar/aconcpkdjoahofphmapdpjiioenkcaeo" rel="nofollow" target="_blank" title=""&gt;https://chromewebstore.google.com/detail/emojiclick-toolbar/aconcpkdjoahofphmapdpjiioenkcaeo&lt;/a&gt;
EmojiClick Toolbar（Edge）：&lt;a href="https://microsoftedge.microsoft.com/addons/detail/emojiclick-toolbar/bendknbccalcldbflflcgkpbnoldneli" rel="nofollow" target="_blank" title=""&gt;https://microsoftedge.microsoft.com/addons/detail/emojiclick-toolbar/bendknbccalcldbflflcgkpbnoldneli&lt;/a&gt;
　&lt;/p&gt;</description>
      <author>Nico</author>
      <pubDate>Mon, 27 Jan 2025 11:16:32 +0800</pubDate>
      <link>http://beta.w2solo.com/topics/5412</link>
      <guid>http://beta.w2solo.com/topics/5412</guid>
    </item>
    <item>
      <title>Firefox Add-ons 插件上架发布全流程指南</title>
      <description>&lt;p&gt;在上一篇文章中，我们详细讲解了如何将产品上架到 Chrome Web Store。今天，我们将继续探索另一个重要的浏览器插件市场——Firefox Add-ons。如果你已经熟悉 Chrome 插件的上架流程，那么这篇文章会让你更快上手 Firefox 插件的发布。当然，我也会在关键环节与 Chrome Web Store 进行对比，帮助你更好地理解两者的异同。  &lt;/p&gt;

&lt;hr&gt;

&lt;p&gt;一、注册 Firefox 开发者账号&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;为什么要注册？
Firefox Add-ons 是 Mozilla 官方提供的插件市场，只有注册开发者账号才能发布插件。&lt;br&gt;
注意，在 Firefox 平台上，浏览器插件产品不叫插件，而叫「附加组件」。&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;注册步骤&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;访问 Firefox 开发者中心。  &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;使用邮箱注册一个 Firefox 账号（如果没有，先注册一个）。  &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;同意开发者协议，完成注册。  &lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;注册成功以后，账号的设置非常简单，「显示名称」是需要设置一下的，其他都可以不填，这个比 Chrome 就方便太多了 。
&lt;img src="https://img.way2solo.com/photo/Nico/bed640e5-ff0c-48e0-bd19-71f6876290bb.png?imageView2/2/w/1920/q/100" title="" alt=""&gt;&lt;/p&gt;

&lt;p&gt;与 Chrome 对比：  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;费用：Firefox 注册完全免费，而 Chrome 需要支付 5 美元。&lt;br&gt;
&lt;/li&gt;
&lt;li&gt;账号类型：Firefox 使用普通邮箱注册，Chrome 则需绑定 Google 账号。 当然，你完全可以复用 Google 的账号。（PS：要混海外社区，有个一网通的账号非常方便，Google 账号几乎就是大家公认的一网通账号，绝大部分的海外产品都支持 Google 一键登录）&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;最后，设置完以后，你就可以直接提交你的插件了，这里有两种类型：附加组件、主题，注意按需选择。
&lt;img src="https://img.way2solo.com/photo/Nico/4cb1e4fd-7114-4ed5-ae41-5a61f0dc729a.png?imageView2/2/w/1920/q/100" title="" alt=""&gt;&lt;/p&gt;

&lt;hr&gt;

&lt;p&gt;二、打包你的插件&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;准备插件文件
Firefox 插件的文件结构与 Chrome 类似，通常包括：&lt;br&gt;
&lt;/li&gt;
&lt;li&gt;manifest.json：插件的配置文件，定义名称、版本、权限等信息。&lt;br&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;图标、脚本、样式等资源文件。  &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;编写 manifest.json
Firefox 的 manifest.json 与 Chrome 基本一致，但有一些细微差别。以下是一个简单的示例：  &lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="nl"&gt;"manifest_version"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"我的插件"&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"version"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"1.0"&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"description"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"这是一个示例插件。"&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"icons"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"128"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"icon.png"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"action"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"default_popup"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"popup.html"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"permissions"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"activeTab"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;

&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;与 Chrome 对比：  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;兼容性：Firefox 支持 Chrome 的 manifest.json 格式，但建议检查 Firefox 官方文档 以确保完全兼容。&lt;/li&gt;
&lt;li&gt;权限申请：这一块我还是建议沿用 chrome 的策略，不要过度申请不需要的权限。&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;打包插件&lt;/li&gt;
&lt;li&gt;将所有文件放入一个文件夹。&lt;br&gt;
&lt;/li&gt;
&lt;li&gt;将文件夹压缩为 .zip 文件。&lt;br&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;小提示：&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;与 Chrome 一样，确保 manifest.json 文件位于压缩包的根目录。&lt;br&gt;
&lt;/li&gt;
&lt;li&gt;这里需要特别说明一下，Firefox 对权限没有那么多的检查，包括后面的提交环节，也不会像 chrome 那样要求你逐一填写说明你为什么需要这个权限，相比之下 Firefox 确实友好得多。&lt;/li&gt;
&lt;li&gt;即便如此，还是再次强调下，不要过度申请不必要的权限。&lt;/li&gt;
&lt;/ul&gt;

&lt;hr&gt;

&lt;p&gt;三、提交插件并填写信息&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;登录开发者中心
访问 Firefox 开发者中心：&lt;a href="https://addons.mozilla.org/zh-CN/developers/" rel="nofollow" target="_blank"&gt;https://addons.mozilla.org/zh-CN/developers/&lt;/a&gt; 
使用注册的账号登录。  &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;上传插件&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;点击 “提交新插件”，上传打包好的 .zip 文件。  &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;填写插件的基本信息：  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;名称：插件的名称（不超过 45 个字符）。&lt;br&gt;
&lt;/li&gt;
&lt;li&gt;简短描述：一句话介绍插件功能（不超过 80 个字符）。&lt;br&gt;
&lt;/li&gt;
&lt;li&gt;详细描述：详细说明插件的功能和使用场景。&lt;br&gt;
&lt;/li&gt;
&lt;li&gt;图标：建议尺寸为 128x128 像素。&lt;br&gt;
&lt;/li&gt;
&lt;li&gt;宣传图片：至少 1 张，尺寸为 1280x800 或 640x400 像素。&lt;br&gt;
&lt;/li&gt;
&lt;li&gt;隐私政策：提供隐私政策 URL，说明数据收集和使用情况。&lt;br&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;img src="https://img.way2solo.com/photo/Nico/963f7826-dfeb-483a-b1a2-222ac687ad96.png?imageView2/2/w/1920/q/100" title="" alt=""&gt;
&lt;img src="https://img.way2solo.com/photo/Nico/256f98b4-dba5-4ae8-89a2-6132de9b86be.png?imageView2/2/w/1920/q/100" title="" alt=""&gt;&lt;/p&gt;

&lt;p&gt;与 Chrome 对比：  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;信息填写：Firefox 的信息填写流程与 Chrome 类似，但界面设计更简洁。&lt;br&gt;
&lt;/li&gt;
&lt;li&gt;隐私政策：两者都要求提供隐私政策 URL。&lt;br&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;信息填写方面，绝大部分的内容都可以复用 chrome 的，界面如下：
&lt;img src="https://img.way2solo.com/photo/Nico/5f6b3584-2c5c-4b59-99ac-5549ff713fd2.png?imageView2/2/w/1920/q/100" title="" alt=""&gt;
&lt;img src="https://img.way2solo.com/photo/Nico/1c7ec6d2-7a2d-4508-b196-b433b7c962c4.png?imageView2/2/w/1920/q/100" title="" alt=""&gt;&lt;/p&gt;

&lt;p&gt;这些信息的填写，建议还是要多花点时间和精力，当然如果你已经提交过 chrome 市场了，完全可以复制之前的内容。但是，我在此处就踩坑了，Firefox  产品详情页在渲染图片的时候，并不如 chrome 的那么自然，具体效果可以看这个链接：&lt;a href="https://addons.mozilla.org/zh-CN/firefox/addon/emojiclick-toolbar/" rel="nofollow" target="_blank"&gt;https://addons.mozilla.org/zh-CN/firefox/addon/emojiclick-toolbar/&lt;/a&gt;
平铺的时候还行，但是点击大图的时候就拉胯了。
&lt;img src="https://img.way2solo.com/photo/Nico/ba5c11b4-13f3-442c-ac41-03eac59cf6c8.png?imageView2/2/w/1920/q/100" title="" alt=""&gt;
&lt;img src="https://img.way2solo.com/photo/Nico/2f79c01d-29d6-4d4d-a82e-aa517f8b73ae.png?imageView2/2/w/1920/q/100" title="" alt=""&gt;&lt;/p&gt;

&lt;hr&gt;

&lt;p&gt;四、审核与发布&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;提交审核
填写完所有信息后，点击 “提交审核”。Mozilla 团队会对插件进行审核，通常需要 1-2 天。  &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;审核内容
Mozilla 团队会检查以下内容：  &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;插件功能是否符合政策。  &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;权限使用是否合理。  &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;隐私政策是否完整。  &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;插件描述是否清晰。  &lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;与 Chrome 对比：  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;审核时间：Firefox 的审核时间通常比 Chrome 更快。&lt;br&gt;
&lt;/li&gt;
&lt;li&gt;审核标准：两者都注重功能合规性和隐私保护，但 Firefox 对权限使用的审查相对宽松。&lt;br&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;审核结果&lt;/li&gt;
&lt;li&gt;通过：插件将自动发布到 Firefox Add-ons。&lt;br&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;被拒：你会收到邮件，说明被拒原因。根据反馈修改后，重新提交即可。  &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;发布成功
审核通过后，你的插件将正式上线！用户可以在 Firefox Add-ons 中搜索并安装你的插件。  &lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;我自己的经验是在 Firefox 上发布产品很顺利，没有被拒。
而且他们的产品详情页比较友好，随时可以编辑更新，所以就是前面提到的大图问题，我也可以重新出一套图更新掉，这个问题不大。&lt;/p&gt;

&lt;hr&gt;

&lt;p&gt;五、后续更新&lt;/p&gt;

&lt;p&gt;如果需要更新插件，只需在开发者中心上传新版本，并提交审核。更新审核通常比初次审核更快，约 1 天 即可完成。  &lt;/p&gt;

&lt;hr&gt;

&lt;p&gt;总结&lt;/p&gt;

&lt;p&gt;通过这篇文章，我介绍了了从注册、打包、审核到发布 Firefox 插件的全流程。如果你已经熟悉 Chrome Web Store 的上架流程，那么 Firefox Add-ons 的操作会更加轻松。  &lt;/p&gt;

&lt;p&gt;接下来，只需按照步骤操作，就能让你的产品成功上架 Firefox Add-ons，触达更多用户！  &lt;/p&gt;

&lt;p&gt;如果你在过程中遇到问题，欢迎在评论区留言，我会尽力为你解答！  &lt;/p&gt;

&lt;p&gt;最后，再次推荐下我自己的小产品：&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;EmojiClick： &lt;a href="https://emojis.click/" rel="nofollow" target="_blank" title=""&gt;https://emojis.click/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;EmojiClick Toolbar（Chrome）：&lt;a href="https://chromewebstore.google.com/detail/emojiclick-toolbar/aconcpkdjoahofphmapdpjiioenkcaeo" rel="nofollow" target="_blank" title=""&gt;https://chromewebstore.google.com/detail/emojiclick-toolbar/aconcpkdjoahofphmapdpjiioenkcaeo&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;EmojiClick Toolbar（Firefox）：&lt;a href="https://addons.mozilla.org/zh-CN/firefox/addon/emojiclick-toolbar/" rel="nofollow" target="_blank" title=""&gt;https://addons.mozilla.org/zh-CN/firefox/addon/emojiclick-toolbar/&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;</description>
      <author>Nico</author>
      <pubDate>Thu, 23 Jan 2025 14:51:52 +0800</pubDate>
      <link>http://beta.w2solo.com/topics/5406</link>
      <guid>http://beta.w2solo.com/topics/5406</guid>
    </item>
    <item>
      <title>Chrome 插件上架发布全流程指南</title>
      <description>&lt;p&gt;浏览器插件开发完以后，要发布到 Chrome Web Store 上，也是需要颇费一番周折的，本文就从注册账号开始，一直到最后发布上架的全流程进行指导，希望帮助你提供一些经验，避免踩坑，耗时耗力。&lt;/p&gt;

&lt;p&gt;总的来说，这个过程的流程如下：
&lt;img src="https://img.way2solo.com/photo/Nico/aa98b4c8-18be-41d9-881b-b801b58db517.png?imageView2/2/w/1920/q/100" title="" alt=""&gt;&lt;/p&gt;

&lt;p&gt;一、注册 Chrome Web Store 开发者账号&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;为什么要注册？
Chrome Web Store 是 Chrome 浏览器的官方插件市场，只有注册开发者账号才能发布插件。&lt;br&gt;
这个是一个独立的应用市场，不是 Google Play，这一点我个人认为 Google 比 Apple 要更友好，Apple 就是一个统一的开发者平台，费用特别高，认证也复杂的多，对开发者不友好。&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Chrome Web Store 的认证比较简单，所需要的资料也不多，基本上就是象征性填一下，就可以过了。&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;注册步骤&lt;/li&gt;
&lt;li&gt;访问  &lt;a href="https://chrome.google.com/webstore/devconsole/register" rel="nofollow" target="_blank"&gt;https://chrome.google.com/webstore/devconsole/register&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;使用 Google 账号登录（如果没有，先注册一个）。&lt;br&gt;
&lt;/li&gt;
&lt;li&gt;支付一次性费用 5 美元（支持 Visa、Mastercard 等信用卡）。&lt;br&gt;
&lt;/li&gt;
&lt;li&gt;同意开发者协议，完成注册。&lt;br&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;几个关键点：&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;在注册开发者的过程中，需要支付 $5 的费用，如果你是使用中国大陆地区的银行卡支付，Chrome Web Store 的表单上并不接收「中国大陆地区」的银行卡。我实测的做法是：还是用中国大陆地区的招行 Master 卡，在地区选择的时候，选择了「香港」，并且随便填了一个地址，居然也支付成功了。支付成功以后就顺利注册成功为 Chrome Web Store 的开发者了。
&lt;img src="https://img.way2solo.com/photo/Nico/c6acdc98-0d81-4fcf-b060-46d4762585b4.png?imageView2/2/w/1920/q/100" title="" alt=""&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;注册完成后，记得保存好账号信息，特别是「发布者显示名字」，后续更新插件时会显示到市场中。「交易者声明」基于你的插件是否收费来选择。
&lt;img src="https://img.way2solo.com/photo/Nico/f550d731-d021-4bf5-8ad7-d108cca56379.png?imageView2/2/w/1920/q/100" title="" alt=""&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;如果你是有多个开发成员，设置里面也很简单，可以在「管理」、「群组发布者成员资格」这里把他们邀请进来。推荐务必开启「接收开发者最新动态」，这样插件的一些审核事件可以及时知道。
&lt;img src="https://img.way2solo.com/photo/Nico/d6da0f8c-a204-4fe9-b048-111201f83ee8.png?imageView2/2/w/1920/q/100" title="" alt=""&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;hr&gt;

&lt;p&gt;二、打包你的插件&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;准备插件文件
Chrome 插件通常由以下文件组成：&lt;br&gt;
&lt;/li&gt;
&lt;li&gt;manifest.json：插件的配置文件，定义名称、版本、权限等信息。&lt;br&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;图标、脚本、样式等资源文件。  &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;编写 manifest.json
这是一个简单的 manifest.json 示例：  &lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"manifest_version"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"我的插件"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"version"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"1.0"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"description"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"这是一个示例插件。"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"icons"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"128"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"icon.png"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"action"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"default_popup"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"popup.html"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"permissions"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"activeTab"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;ol&gt;
&lt;li&gt;打包插件&lt;/li&gt;
&lt;li&gt;将所有文件放入一个文件夹。&lt;br&gt;
&lt;/li&gt;
&lt;li&gt;将文件夹压缩为 .zip 文件。&lt;br&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;几个关键点：&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;确保 manifest.json 文件位于压缩包的根目录，否则无法通过审核。&lt;br&gt;
&lt;/li&gt;
&lt;li&gt;权限申请不要滥用，你如果明明没有使用的权限，也很粗犷的申请了，肯定会被审核拒绝，我就碰到了。
&lt;img src="https://img.way2solo.com/photo/Nico/28c48ba7-0189-469d-a94e-94e6a116b9a1.png?imageView2/2/w/1920/q/100" title="" alt=""&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;hr&gt;

&lt;p&gt;三、提交插件并填写信息&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;登录开发者中心
访问 Chrome Web Store 开发者中心，使用注册的 Google 账号登录。  &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;上传插件&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;选择「内容」菜单，点击 “上传新内容”，上传打包好的 .zip 文件。&lt;br&gt;
&lt;img src="https://img.way2solo.com/photo/Nico/48b73c61-bb20-408f-add8-b4e7c3067780.png?imageView2/2/w/1920/q/100" title="" alt=""&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;填写插件的基本信息：  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;名称：插件的名称（不超过 45 个字符）。&lt;br&gt;
&lt;/li&gt;
&lt;li&gt;简短描述：一句话介绍插件功能（不超过 80 个字符）。&lt;br&gt;
&lt;/li&gt;
&lt;li&gt;详细描述：详细说明插件的功能和使用场景。&lt;br&gt;
&lt;/li&gt;
&lt;li&gt;图标：建议尺寸为 128x128 像素。&lt;br&gt;
&lt;/li&gt;
&lt;li&gt;宣传图片：至少 1 张，尺寸为 1280x800 或 640x400 像素。&lt;br&gt;
&lt;/li&gt;
&lt;li&gt;隐私政策：提供隐私政策 URL，说明数据收集和使用情况。&lt;br&gt;
&lt;img src="https://img.way2solo.com/photo/Nico/82689f61-0f6e-4764-8517-a359d42d42b3.png?imageView2/2/w/1920/q/100" title="" alt=""&gt;
&lt;img src="https://img.way2solo.com/photo/Nico/1664dc00-5b1e-4565-a877-f6697ff6b529.png?imageView2/2/w/1920/q/100" title="" alt=""&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;几个关键点：&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;产品描述非常关键，要简洁，详细，有良好的阅读性。 建议多看看已经上架的其他插件，它们是怎么写的，特别是那些已经被加为精选的插件，学习一下它们的内容描述和排版风格。这里我分享一下我用 DeepSeek 给 EmojiClick 做的描述文案，我认为排版还是很友好的，内容也写得简洁，但是又表达到位。&lt;/li&gt;
&lt;/ol&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;EmojiClick is your AI-powered emoji finder that instantly matches the perfect emoji to any mood, phrase, poem, or lyrics. Simply type what you feel, and let EmojiClick do the rest—no more endless scrolling. It’s fast, smart, and works in multiple languages, making it your go-to tool for effortless expression.

Key Features &lt;span class="err"&gt;&amp;amp;&lt;/span&gt; Highlights:
✅ AI-Powered Precision: Finds the ideal emoji for any input.

✅ Natural Language Support: Understands moods, feelings, poetry, and lyrics.

✅ Multi-Language Compatibility: Works across various languages and keeps expanding.

✅ Browser Toolbar Integration: Accessible right from your Chrome toolbar.

✅ Instant Results: No more endless emoji scrolling—get matches in seconds.

✅ Simple &lt;span class="err"&gt;&amp;amp;&lt;/span&gt; Intuitive: Just type and let EmojiClick handle the rest.

Express yourself smarter and faster with EmojiClick! 🚀
&lt;/code&gt;&lt;/pre&gt;
&lt;ol&gt;
&lt;li&gt;&lt;p&gt;产品截图素材最好是用 sketch 这样的专业软件重新排版编辑一下，直接截图会有几个问题：一方面是太粗糙了，很难上得了台面；另一方面是你几乎不可能满足 chrome 的尺寸要求，这个还是得用专业软件编辑一下，推荐你直接看一下 EmojiClick 的图片设计：&lt;a href="https://chromewebstore.google.com/detail/emojiclick-toolbar/aconcpkdjoahofphmapdpjiioenkcaeo" rel="nofollow" target="_blank"&gt;https://chromewebstore.google.com/detail/emojiclick-toolbar/aconcpkdjoahofphmapdpjiioenkcaeo&lt;/a&gt;
&lt;img src="https://img.way2solo.com/photo/Nico/094db055-9102-4f9b-a53c-c9a0f29b9429.png?imageView2/2/w/1920/q/100" title="" alt=""&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;如果能提供 YouTube 视频是最好不过的了，但是需要选择一个较好的录屏软件来做，也需要进行一定的视频编辑才能有精致度，我这次就草草录了一个，但是有比没有要好。&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;设置权限
在 “权限” 部分，明确插件申请的权限及用途。例如：  &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;activeTab：访问当前标签页。  &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;storage：存储用户数据。  &lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;关键事项：&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;权限描述要清晰，避免因权限滥用导致审核被拒。 这个前面已经说了。&lt;/li&gt;
&lt;li&gt;权限描述是一个非常繁琐的事情，先看一下要填的内容：
&lt;img src="https://img.way2solo.com/photo/Nico/b8bb7eca-13b0-4502-b20e-56946476ee88.png?imageView2/2/w/1920/q/100" title="" alt=""&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;我的做法是，把这个事情丢给 DeepSeek，让它来帮你生成每一个理由，我就是直接用这些 DeepSeek 提供的内容，基本上还是很顺利的就过了。我把这些文案也提供到这里供你参考，我认为下面的文案质量确实也非常高了，简洁，清晰。再次点赞 DeepSeek：&lt;/p&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;---

### **1. 单一用途说明**  
**解释**：Chrome 要求扩展程序有明确的单一用途，不能包含无关功能。  
**参考回答**：  
EmojiClick 是一个 AI 表情符号查找工具，旨在帮助用户通过输入自然语言（如情绪、感受、诗句或歌词）快速找到最合适的表情符号。其单一用途是简化表情符号搜索过程，提升用户的表达效率。

---

### **2. 使用远程代码的理由**  
**解释**：如果扩展程序需要加载远程代码（如从服务器获取数据），必须说明原因。  
**参考回答**：  
EmojiClick 使用远程代码来调用 AI 模型，以便根据用户输入的内容实时分析和匹配最合适的表情符号。这是实现核心功能（智能表情推荐）的必要条件。

---

### **3. 使用主机权限的理由**  
**解释**：如果扩展程序需要访问特定主机（如 API 服务器），需说明原因。  
**参考回答**：  
EmojiClick 需要访问其 API 服务器（如 `https://emojis.click/`），以便将用户输入的内容发送到 AI 模型进行处理，并返回匹配的表情符号结果。

---

### **4. 使用 activeTab 权限的理由**  
**解释**：如果扩展程序需要与当前活动的浏览器标签页交互，需说明原因。  
**参考回答**：  
EmojiClick 使用 `activeTab` 权限以在用户点击工具栏图标时，获取当前活动标签页的上下文信息，确保表情符号推荐功能与用户当前浏览内容无缝集成。

---

### **5. 使用 clipboardWrite 权限的理由**  
**解释**：如果扩展程序需要写入剪贴板，需说明原因。  
**参考回答**：  
EmojiClick 使用 `clipboardWrite` 权限，允许用户一键复制推荐的表情符号，方便快速粘贴到社交媒体、聊天窗口或其他输入框中。

---

### **6. 使用 notifications 权限的理由**  
**解释**：如果扩展程序需要显示通知，需说明原因。  
**参考回答**：  
EmojiClick 使用 `notifications` 权限，在用户完成特定操作（如成功复制表情符号）时显示简短的通知，以提供即时反馈和增强用户体验。

---

### **7. 使用 scripting 权限的理由**  
**解释**：如果扩展程序需要在网页中注入或执行脚本，需说明原因。  
**参考回答**：  
EmojiClick 使用 `scripting` 权限，以便在用户点击工具栏图标时，动态注入必要的脚本并与网页内容交互，确保表情符号推荐功能正常运行。

---

### **8. 使用 storage 权限的理由**  
**解释**：如果扩展程序需要存储数据（如用户设置或历史记录），需说明原因。  
**参考回答**：  
EmojiClick 使用 `storage` 权限，用于保存用户的偏好设置（如语言选项）和最近使用的表情符号历史记录，以提供个性化的使用体验。

---

### **9. 使用 tabs 权限的理由**  
**解释**：如果扩展程序需要访问浏览器标签页信息，需说明原因。  
**参考回答**：  
EmojiClick 使用 `tabs` 权限，以便在用户点击工具栏图标时，获取当前标签页的 URL 和内容信息，确保表情符号推荐功能与用户当前浏览内容相关。

---

### **10. 数据使用情况确认**  
**解释**：Chrome 要求开发者确认扩展程序的数据使用符合其开发者计划政策。  
**参考回答**：  
EmojiClick 仅收集和处理用户输入的内容（如情绪、感受、诗句或歌词），用于实时匹配表情符号。所有数据均通过加密传输，且不会存储或共享用户的个人信息。我们严格遵守 Chrome 开发者计划政策，确保用户隐私和数据安全。

---
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;四、审核与发布&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;提交审核
填写完所有信息后，点击 “提请审核”。Chrome 团队会对插件进行审核，通常需要 2～4 天。&lt;br&gt;
&lt;img src="https://img.way2solo.com/photo/Nico/bba65cb8-b865-46c1-a8c7-13b22e504b86.png?imageView2/2/w/1920/q/100" title="" alt=""&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;审核内容
Chrome 团队会检查以下内容：  &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;插件功能是否符合政策。  &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;权限使用是否合理。  &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;隐私政策是否完整。  &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;插件描述是否清晰。  &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;审核结果&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;通过：插件将自动发布到 Chrome Web Store。  &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;被拒：你会收到邮件，说明被拒原因。根据反馈修改后，重新提交即可。  &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;发布成功
审核通过后，你的插件将正式上线！用户可以在 Chrome Web Store 中搜索并安装你的插件。一般来说，你会收到一个通知邮件：&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;img src="https://img.way2solo.com/photo/Nico/f8be0487-9a7d-4744-89b1-04a6fe096f96.png?imageView2/2/w/1920/q/100" title="" alt=""&gt;&lt;/p&gt;

&lt;p&gt;关键事项：&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;第一次审核上线大概需要 3～4 天时间，如果你是周末提交的，人家 google 可是要休息的哦，不能算到工作日里面。&lt;/li&gt;
&lt;li&gt;可能会有被拒的情况，这个都是正常的，特别是在第一次提交的时候，但是后面就快了。我的经验是，后面升级版本的时候，有时候半天就通过审核了。&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;五、后续更新&lt;/p&gt;

&lt;p&gt;如果需要更新插件，只需在开发者中心上传新版本，并提交审核。更新审核通常比初次审核更快，约 1 天 即可完成。  &lt;/p&gt;

&lt;hr&gt;

&lt;p&gt;总结&lt;/p&gt;

&lt;p&gt;通过这篇文章，详细介绍了从注册、打包、审核到发布 Chrome 插件的全流程。接下来，只需按照步骤操作，就能让你的产品成功上架 Chrome Web Store，触达全球用户！  &lt;/p&gt;

&lt;p&gt;如果你在过程中遇到问题，欢迎在评论区留言，我会尽力为你解答！  &lt;/p&gt;

&lt;p&gt;最后，再次推荐下我自己的小产品：&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;EmojiClick： &lt;a href="https://emojis.click/" rel="nofollow" target="_blank" title=""&gt;https://emojis.click/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;EmojiClick Toolbar：&lt;a href="https://chromewebstore.google.com/detail/emojiclick-toolbar/aconcpkdjoahofphmapdpjiioenkcaeo" rel="nofollow" target="_blank" title=""&gt;https://chromewebstore.google.com/detail/emojiclick-toolbar/aconcpkdjoahofphmapdpjiioenkcaeo&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;hr&gt;</description>
      <author>Nico</author>
      <pubDate>Tue, 14 Jan 2025 10:23:20 +0800</pubDate>
      <link>http://beta.w2solo.com/topics/5378</link>
      <guid>http://beta.w2solo.com/topics/5378</guid>
    </item>
    <item>
      <title>EmojiClick：通过 AI 搜索找到合你心意的 emoji</title>
      <description>&lt;p&gt;你有没有过这样的经历？&lt;/p&gt;

&lt;p&gt;想发一条朋友圈，却卡在了选 emoji 这一步——翻遍表情库，愣是找不到那个 “刚刚好” 的表情。😅&lt;/p&gt;

&lt;p&gt;“今天心情像过山车” 该用哪个？🎢&lt;/p&gt;

&lt;p&gt;“被生活暴击” 怎么表达？💥&lt;/p&gt;

&lt;p&gt;“我 emo 了” 又该配什么？😔&lt;/p&gt;

&lt;p&gt;EmojiClick 通过 AI 搜索找到准确的 emoji，你无需记住 emoji 的名字，无需担心匹配不到你需要的 emoji，你可以直接输入任何自然语言，包括你的情绪，你的感受，或者是一句诗，一句歌词，EmojiClick 都能为你找到完美的 Emoji。&lt;/p&gt;

&lt;p&gt;网址：&lt;a href="https://emojis.click/" rel="nofollow" target="_blank"&gt;https://emojis.click/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src="https://img.way2solo.com/photo/Nico/e17117fe-41f1-4f09-a083-1700a40b2c3b.jpg?imageView2/2/w/1920/q/100" title="" alt=""&gt;
&lt;img src="https://img.way2solo.com/photo/Nico/a892e99c-8d5f-49a7-bc75-1aa7579c293d.jpg?imageView2/2/w/1920/q/100" title="" alt=""&gt;
&lt;img src="https://img.way2solo.com/photo/Nico/f8ba917b-78d3-4dd2-b700-f8155cc8c99b.jpg?imageView2/2/w/1920/q/100" title="" alt=""&gt;&lt;/p&gt;</description>
      <author>Nico</author>
      <pubDate>Sat, 28 Dec 2024 10:56:36 +0800</pubDate>
      <link>http://beta.w2solo.com/topics/5338</link>
      <guid>http://beta.w2solo.com/topics/5338</guid>
    </item>
    <item>
      <title>Wordless:一个猜字谜的小游戏，测试你的词汇量吧</title>
      <description>&lt;p&gt;一个无限猜词游戏。每次测试你的猜字技能和单词量，单词长度从 3 到 8 个字母不等。你能在仅仅 6 次尝试中解决它们全部吗？在无字在线游戏中，磨练你的词汇量并享受乐趣。&lt;/p&gt;

&lt;p&gt;游戏非常简单，Have fun！&lt;/p&gt;

&lt;p&gt;&lt;a href="https://wordless.online/" rel="nofollow" target="_blank"&gt;https://wordless.online/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src="https://img.way2solo.com/photo/Nico/780aac40-f5be-4664-af4d-b83ca51b3129.png?imageView2/2/w/1920/q/100" title="" alt=""&gt;
&lt;img src="https://img.way2solo.com/photo/Nico/598aea78-4ccd-42d5-b803-f6ff47422c48.png?imageView2/2/w/1920/q/100" title="" alt=""&gt;
&lt;img src="https://img.way2solo.com/photo/Nico/d7c263d9-ec24-4aaa-b199-e53504d4764e.png?imageView2/2/w/1920/q/100" title="" alt=""&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src="https://img.way2solo.com/photo/Nico/cf81b71c-73db-4335-a268-d8ff8ed18414.png?imageView2/2/w/1920/q/100" title="" alt=""&gt;&lt;/p&gt;</description>
      <author>Nico</author>
      <pubDate>Sat, 02 Nov 2024 08:27:14 +0800</pubDate>
      <link>http://beta.w2solo.com/topics/5200</link>
      <guid>http://beta.w2solo.com/topics/5200</guid>
    </item>
    <item>
      <title>Subrise： 一个帮助中国的独立开发者在 Reddit 搞流量的工具</title>
      <description>&lt;p&gt;在出海的大背景下，越来越多人要在海外找流量平台，Reddit 有 6 亿用户，100W+ 的子社区，非常适合做内容的营销和运营。
Subrise 就是想帮助中国出海人快速的熟悉 Reddit，它可以帮你找到合适的 Reddit 子板块。
网址在这里：&lt;a href="https://subrise.co/" rel="nofollow" target="_blank"&gt;https://subrise.co/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;【灵感来源】
它来自于一系列小小的灵感：&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;如果我想要在 Reddit 上找到一个合适的子板块，我需要做什么？&lt;/li&gt;
&lt;li&gt;如果我想要快速提升 Karma，我需要做什么？&lt;/li&gt;
&lt;li&gt;什么的子板块是值得深度耕耘的，挑选过程是否可以简化一些，有没有作业可以抄？&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;【适合用户】&lt;/p&gt;

&lt;p&gt;在这个网站很适合刚刚开始做 Reddit 的新手，可以帮你节省很多时间。
目前提供了这么几个核心功能：&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;概念科普：Reddit 是什么，它有哪些基础概念，它的玩法是什么样的？&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;探索 Reddit：基于 Reddit Top 官方榜单，提供了比官方详细得多的筛选功能，你可以轻松找到最近热门的板块。&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;干货总结：收录了一系列简单易懂的文章，这些教程全部是基于我们自己的实操经验，可以帮你快速上手 Reddit 的玩法。&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;这个网站目前还比较早期，我也是基于自己的一些需求，开发了这么一个工具。&lt;/p&gt;

&lt;p&gt;【数据说明】&lt;/p&gt;

&lt;p&gt;数据是从 Reddit 官方爬取的，基于这个网站，可以快速找到那些高用户量的子社区，并且可以基于分类进行筛选，分类数据也是来自于官方，在爬取数据过程中，用 AI 对数据做了一层结构化处理，加上了「适合推广的内容」、「注意事项」等字段，方便你快速判断这个板块是否适合你。&lt;/p&gt;

&lt;p&gt;【产品截图】
&lt;img src="https://img.way2solo.com/photo/Nico/48edb977-8acc-462e-97eb-e3e27ab7e729.jpg?imageView2/2/w/1920/q/100" title="" alt=""&gt;
&lt;img src="https://img.way2solo.com/photo/Nico/b2f6dbc8-0429-4fec-a5c2-ddb43747964e.jpg?imageView2/2/w/1920/q/100" title="" alt=""&gt;&lt;/p&gt;

&lt;p&gt;【后续计划】&lt;/p&gt;

&lt;p&gt;提供更加个性化的 AI 推荐，用户只需要输入你的产品品类、产品关键字，甚至是产品卖点，Subrise 会基于 AI 给你推荐最合适的子社区清单，助力你更加快速找到最合适的社区。
提供更加丰富的数据，比如子社区的成员数、热度、帖子数、最近帖子的时间等，供你参考对比，方便决策
将整个项目开源，欢迎有兴趣的朋友一起来完善。&lt;/p&gt;</description>
      <author>Nico</author>
      <pubDate>Wed, 23 Oct 2024 09:43:29 +0800</pubDate>
      <link>http://beta.w2solo.com/topics/5167</link>
      <guid>http://beta.w2solo.com/topics/5167</guid>
    </item>
  </channel>
</rss>
