React Native跨端开发:OpenHarmony上TouchableOpacity长按交互实践
在 OpenHarmony 应用开发这条路上很多团队都碰到过一个很现实的问题原生 ArkUI 写起来没毛病但业务量一大同一套代码要在多个端上跑成本就上来了。于是 React Native 的 OpenHarmony 适配方案就成了一条很自然的出路。前阵子我正好在做跨端项目需要对列表项做“长按弹出操作菜单”的交互用到的核心组件就是 TouchableOpacity。一开始觉得这不就是加一个 onLongPress 的事嘛真正落地时才发现事件时序、手势冲突、平台差异这些坑比想象中多得多。这篇文章就把我这段时间踩过的坑、验证过的方案、以及最终沉淀下来的实现思路完整梳理一遍希望给正在用 React Native 开发 OpenHarmony 应用的朋友一些参考。1. 先聊聊为什么要在 OpenHarmony 上用 React Native 写交互OpenHarmony 生态越来越成熟很多团队在规划新业务时已经不再把“只写原生 ArkUI 应用”当成唯一选项。原因也很直白业务方往往同时要覆盖 Android、iOS 以及越来越多的 OpenHarmony 设备三套原生代码的维护成本不是谁都能扛得住的。React Native 作为跨端方案里社区最活跃、生态最完整的选择在 OpenHarmony 上的适配进度这几年一直在推进。我自己的实测感受是RN 在 OpenHarmony 上跑业务页面已经达到可用的状态尤其适合中后台、工具类、内容展示类应用这些场景对复杂动效和底层特性的要求没那么极端RN 的收益反而很明显。我这次的项目背景是一个信息管理类的应用核心页面是长列表需求是在列表项上实现“长按弹出操作菜单”。这个交互在原生 ArkUI 里做并不复杂但既然整体页面是用 React Native 写的就必须在 RN 的框架内解决。TouchableOpacity 是 RN 中最常用的触摸反馈组件之一我先说一下为什么选它而不是其他 Touchable 系列。TouchableHighlight 按压时会有背景色高亮视觉上比较重在卡片式列表里容易显得突兀TouchableWithoutFeedback 没有任何视觉反馈用户按下去不知道有没有生效交互上不友好TouchableOpacity 通过透明度变化给出反馈轻量、直观、自定义空间大。做这类轻交互我基本都是默认选它。1.1 从 ArkUI 到 RN交互层的思路转变在纯 ArkUI 开发里手势通常用 onTouch、onClick、onLongPress 这些事件直接绑定在组件上系统把触摸手势的识别逻辑封装好了。而 RN 的触摸体系是基于 JS 侧的事件分发这中间多了一层桥接。刚开始从 ArkUI 切到 RN 时我最大的感受是事件的触发时机和参数细节需要自己把控的地方变多了。比如 ArkUI 的 onLongPress 默认按系统时间判定你不太需要关心具体阈值而 RN 里则明显暴露了 delayLongPress 这个参数给你调。这其实是两种设计思路的差异。ArkUI 偏向“声明式事件绑定”组件帮你把常用手势封装好RN 的 Touchable 系列则更像是“可编程的触摸状态机”从按下的那一刻起onPressIn、onPressOut、onLongPress、onPress 这些回调就像状态机里的状态转移你可以清楚知道用户的手指目前在哪个阶段。对于复杂的交互需求比如长按后滑动取消菜单、长按拖拽、长按菜单与点击跳转的区分RN 的这种设计给了更多操作空间但也要求你对事件时序有更清楚的认识否则容易出现“明明写了 onLongPress 却不触发”或者“长按结束又把 onPress 触发了”的怪问题。1.2 交互设计的取舍为什么长按反馈要用透明度选择 TouchableOpacity 还有一个现实原因在 OpenHarmony 的 RN 适配环境下动画和反馈组件的兼容性是需要重点核查的。有些视觉效果复杂的组件在鸿蒙适配版本里可能表现不稳定但 TouchableOpacity 的透明度反馈机制非常简单底层就是一次透明度插值在跨端适配时几乎不会出问题。这也是我在生产环境里优先选它的原因——不是因为它最炫而是因为它足够稳。另外从产品体验角度说长按交互本身是个“重操作”用户按住不放需要的是一个清晰但不打扰的确认信号。透明度变化恰好满足这个要求它不遮挡内容不改变布局尺寸也不会让用户误以为点了之后立刻发生了什么跳转。相比之下高亮背景虽然显眼但在图文列表里会闪一下反而分散注意力。2. TouchableOpacity 长按事件的核心机制拆解想要把 onLongPress 用对先得把 TouchableOpacity 的触摸事件生命周期搞清楚。我用一句话概括一次完整的点击在 TouchableOpacity 内部会经历“按下pressIn→ 保持hold→ 松开pressOut”三个大阶段onPress 和 onLongPress 都是在特定条件下从这条链路里激发出来的。具体拆开看当用户手指碰到组件时onPressIn 最先触发此刻组件开始进入“激活”状态activeOpacity 开始生效透明度降低。如果手指在组件上停留的时间超过了 delayLongPress 设定的阈值onLongPress 触发组件进入“已长按”状态。之后无论用户是松开手指还是滑动移出组件onPressOut 都会触发标志着这次触摸交互结束。而 onPress 的触发条件要苛刻一些它要求按下和松开都发生在组件有效区域内并且期间没有被打断。2.1 关键参数的作用和推荐值TouchableOpacity 有几个参数直接影响长按行为的体验我平时会重点调这几个。下面这张表是我常用的参数速查参数默认值作用我的建议onLongPress无长按触发回调按业务需求绑定onPress无点击触发回调注意和长按区分activeOpacity0.2按压时透明度0.6 到 0.7 更柔和delayLongPress500ms长按判定阈值按需调大或调小delayPressIn0ms按下到触发 onPressIn 的延迟一般不用调delayPressOut0ms松开到触发 onPressOut 的延迟特殊场景使用pressRetentionOffset默认外扩 20 到 30松开判定区域外扩范围需要宽容时手动加大delayLongPress 默认是 500 毫秒这个值对应的是系统层面“长按”的普遍认知。我做列表项长按菜单时一般把 500 毫秒作为起点如果测试反馈误触太多就调到 600 或 700如果希望响应更迅速比如做录音按住说话这种会调到 300 甚至更低。但要注意delayLongPress 调得过低有两个副作用一是普通点击时手指稍有停顿就会误触长按二是和滑动手势的冲突会更明显所以这个值我个人不建议低于 300。activeOpacity 的默认 0.2 在浅色背景上有时显得太“狠”用户按下去按钮几乎要消失了视觉上不太舒服。我常用 0.6 到 0.7既能给出清晰的反馈又不至于影响底下内容的阅读。这个值没有绝对标准和页面背景色、卡片风格都有关系建议真机调一调再看效果。2.2 长按和点击的关系一个容易被忽视的时序问题很多初次接触 RN 的同学都会踩同一个坑写了 onLongPress 之后长按结束松开手指onPress 也被触发了。这不是 bug而是 RN 的默认行为设计——onLongPress 触发并不代表取消后续的 onPress。要实现“长按后不再触发点击”必须在代码里主动进行屏蔽。我常用的做法是维护一个标志位const longPressTriggered useRef(false); // 长按开始时置为 true const handleLongPress () { longPressTriggered.current true; // 弹出菜单等业务逻辑 }; // 松开时根据标志位决定是否执行点击逻辑 const handlePress () { if (longPressTriggered.current) { longPressTriggered.current false; return; } // 正常点击逻辑 };注意这里的细节标志位必须在 onLongPress 触发时置为 true并且要在 onPress 检测到之后重置否则下一次普通点击会被误吞。用 useRef 而不是 useState是因为这个标志位完全不需要触发 UI 更新用 ref 可以避免多余的重渲染性能上也更干净。这个模式我后来封装成了一个自定义 Hook在多个页面复用代码清爽不少。2.3 按下与松开时序的判定还有一个容易忽略的点onPress 的触发条件是按下和松开都在有效区域内并且 onPressOut 之前没有被取消。如果用户按住后手指滑出组件再松开默认情况下 onPress 不会触发但 onLongPress 在滑出之前如果已经达到时长是会触发的。这个行为在实现“长按后滑动取消菜单”时特别有用我可以利用 pressRetentionOffset 和 onPressOut 来感知手指是否离开组件从而决定菜单是否继续展示。pressRetentionOffset 的默认值是一组外扩范围意思是手指松开时必须超出组件多少距离系统才判定“这次触摸不算数”。如果你希望用户按住之后稍微滑出一点仍然算一次有效点击就把这个值调大反之则调小。它还有一个特殊用途当长按已经触发手指在组件边缘滑动时合理的外扩值能避免菜单被误关闭。3. 实操在 OpenHarmony 工程里落地长按交互3.1 环境准备与工程基础在 OpenHarmony 设备上跑 RN 应用前提是工程里已经集成了对应版本的 RN 适配框架。这里不展开搭建流程只说几个我实测下来影响事件处理的关键点。首先一定要确认工程里使用的 RN 版本与 OpenHarmony 适配库版本是官方文档标注的对应关系版本不匹配时触摸事件的分发可能会出现奇怪的延迟或丢失。其次如果项目本身是从 Android 工程迁过来的要注意原生侧有没有做触摸事件的拦截处理某些原生容器组件会吃掉子视图的触摸事件导致 RN 层根本收不到。我这次用来验证的硬件是一台 OpenHarmony 开发板系统版本是当前社区主线版本。实际跑下来基本的触摸事件链路是通的RN 侧 onPressIn、onPressOut、onLongPress 都能正常收到回调。测试阶段我建议把 console.log 打在每一个回调里先确认链路通了再做业务逻辑不要直接闷头写复杂交互不然出了问题很难定位是框架问题还是自己代码问题。3.2 基础实现列表项长按弹出菜单先看一个最直接的场景一个列表每个列表项支持普通点击跳转详情长按则弹出操作菜单。使用 FlatList 渲染列表每个列表项用 TouchableOpacity 包一层代码如下import React, { useRef, useState } from react; import { View, Text, FlatList, TouchableOpacity, Modal, StyleSheet, } from react-native; const LongPressListItem ({ item, onPressItem, onLongPressItem }) { const longPressTriggered useRef(false); const handlePress () { if (longPressTriggered.current) { longPressTriggered.current false; return; } onPressItem(item); }; const handleLongPress () { longPressTriggered.current true; onLongPressItem(item); }; return ( TouchableOpacity style{styles.item} activeOpacity{0.65} delayLongPress{500} onPress{handlePress} onLongPress{handleLongPress} Text style{styles.title}{item.title}/Text Text style{styles.desc}{item.desc}/Text /TouchableOpacity ); }; const ListScreen () { const [menuVisible, setMenuVisible] useState(false); const [currentItem, setCurrentItem] useState(null); const handleLongPressItem (item) { setCurrentItem(item); setMenuVisible(true); }; const handlePressItem (item) { // 跳转详情 console.log(点击条目:, item.id); }; return ( View style{styles.container} FlatList data{data} keyExtractor{(item) item.id} renderItem{({ item }) ( LongPressListItem item{item} onPressItem{handlePressItem} onLongPressItem{handleLongPressItem} / )} / Modal visible{menuVisible} transparent animationTypefade onRequestClose{() setMenuVisible(false)} TouchableOpacity style{styles.mask} activeOpacity{1} onPress{() setMenuVisible(false)} View style{styles.menu} TouchableOpacity style{styles.menuItem} onPress{() { setMenuVisible(false); // 执行编辑操作 }} Text编辑/Text /TouchableOpacity TouchableOpacity style{styles.menuItem} onPress{() { setMenuVisible(false); // 执行删除操作 }} Text删除/Text /TouchableOpacity /View /TouchableOpacity /Modal /View ); };这段代码里有一个细节值得注意Modal 的遮罩层我用的是 TouchableOpacity 而不是普通的 View并且设置了 activeOpacity{1}。这样做的目的是让遮罩区域也能响应点击关闭同时不产生透明度变化视觉上遮罩依然是半透明的黑色。如果你用 View 去绑 onPress是没有点击事件可用的必须额外挂手势识别麻烦不少。这是 RN 开发里很实用的小技巧在 OpenHarmony 的适配环境里同样有效。3.3 长按与点击的区分处理上面的代码里longPressTriggered 这个 ref 承担了区分长按和点击的核心职责。但这里有一个边界情况需要处理如果用户长按触发菜单后又点击了菜单里的“删除”这个 ref 会不会影响菜单按钮的点击不会因为 ref 是定义在每个列表项组件内部的菜单按钮是另一个 TouchableOpacity两者互不影响。但如果你把 ref 定义在父组件层级就一定要注意在使用完后重置否则会出现“上一次长按导致下一次点击被吞”的问题。另一个边界情况是用户长按弹出菜单后菜单还没关闭又去点击了其他列表项。此时上一个列表项的 ref 已经随组件卸载或状态更新被重置了不会误伤。但如果你的列表项是复用的比如 FlatList 的 cell recyclingref 在组件实例复用时会保留上一次的状态这就要确保 onPress 的兜底逻辑里每次都能正确重置标志位。我的习惯是在 handlePress 的开头无条件检查并重置 ref这样无论事件怎么乱序都不会把状态带到下一次点击。3.4 体验细节长按的反馈时机关于长按的“反馈时机”我踩过一个很有意思的坑。一开始我把菜单弹出的逻辑直接写在 onLongPress 里让菜单和透明度变化同时发生。实际测试时发现用户长按后菜单弹出手指松开瞬间 TouchableOpacity 的透明度从 0.65 恢复视觉上菜单是在按钮还没有完全恢复透明度时出现的总有一种“粘滞感”。后来我改成在 onLongPress 触发时先通过 setState 让按钮进入“已选中”样式再延迟 100 到 200 毫秒弹出菜单。这个微小的时间差让整个交互的节奏舒服了很多也让用户能明显感知到“长按生效了”和“菜单出来了”是两件事。这个经验在原生 ArkUI 开发里其实也适用长按交互的反馈层级应当是先给触控元素本身一个状态变化再展示二级操作界面这样用户的手眼配合会更自然。如果两者同时发生用户往往会觉得操作“太突然”。说到底交互反馈不是越快越好而是要有层次、有节奏。4. 常见问题与排查技巧实录4.1 onLongPress 不触发先查这四件事我在 OpenHarmony 设备上调试时遇到过 onLongPress 完全不触发的情况排查下来原因五花八门。我总结了一个四步排查法基本上能覆盖九成以上的问题。第一步确认 delayLongPress 是否被设置得过大。有人为了防误触把 delayLongPress 调到了 1500 毫秒甚至更久结果用户根本不会按住那么久自然永远触发不了。建议先恢复到默认 500 毫秒验证链路再逐步调整到业务可接受的范围。第二步确认组件是否处于 disabled 状态。TouchableOpacity 一旦设置了 disabled{true}所有的触摸回调都会失效包括 onLongPress。在实际业务中有时候 disabled 是通过父组件的某个状态间接传下来的比如列表项在加载中被禁用了。排查时直接打印组件 props 最直观。第三步检查是否有父级组件拦截了触摸事件。这个问题在 OpenHarmony 的混合页面里尤其常见。如果页面里用了原生的滚动容器、弹窗容器或者自定义的原生手势处理器它们可能会在原生层就把触摸事件吃掉了RN 层根本收不到。判断方法是在 onPressIn 里打日志如果 onPressIn 都不触发基本可以断定事件在原生层被拦截了。第四步确认当前 RN 适配版本对 TouchableOpacity 事件的支持情况。某些早期适配版本存在事件支持不完整的问题遇到这种情况最有效的办法是升级适配库版本或者查一下对应版本的已知问题列表。不要自己硬改浪费时间。4.2 长按与列表滚动的手势冲突这是列表场景下最典型的问题用户想在列表项上长按但按住之后手指稍微一动列表就开始滚动onLongPress 根本没有机会触发。实际上RN 的 Touchable 系列在处理这个问题时有一套自己的判定逻辑主要是通过触摸移动距离来区分“点击意图”和“滑动意图”。默认情况下手指移动距离超过一定阈值当前触摸就会被标记为取消onPress、onLongPress 都不会再触发。那怎么解决“又想滚动又想长按”的矛盾我的方案是“先长按后移动”onLongPress 已经触发之后列表项就进入“长按已生效”状态此时手指滑动不再需要触发滚动而是用来做拖拽或者滑动取消菜单。具体实现时可以在 onLongPress 之后通过父组件控制 FlatList 的 scrollEnabledFlatList scrollEnabled{!longPressActive} // 其他配置 /这里的 longPressActive 是组件内维护的状态onLongPress 触发时置为 true菜单关闭或触摸结束时置为 false。这样用户长按弹出菜单后手指滑动就不会误滚列表体验更可控。需要注意如果长按菜单弹出后你不需要支持拖拽只是希望滑出组件取消菜单可以在 onPressOut 或触摸结束时统一重置同时关闭菜单。还有一个更简单的思路如果业务上允许“轻点”和“长按”的触发区域分开比如列表项右侧放一个单独的长按按钮就不存在手势冲突了。但大多数信息流场景并没有这个空间所以手势优先级方案还是得掌握。4.3 系统级参数和辅助功能的影响在 OpenHarmony 上测试时我还发现一个容易被忽略的点系统设置的触摸时长参数会直接影响 RN 的长按判定。部分设备或系统版本在开启辅助功能、或者用户自定义了触摸时长后长按的触发体验会发生变化。这不是代码层面的 bug而是系统层面的参数覆盖。遇到“我的代码明明没问题但在某个设备上长按就是不好使”的情况优先怀疑这一点。解决办法有两个方向一是让 delayLongPress 尽量保持在一个合理区间不要太贴近系统阈值否则系统辅助功能和你的代码判定会互相打架二是在产品层面提供可配置的触发灵敏度比如设置页里给用户一个“长按响应速度”选项。毕竟长按这个手势对部分用户来说本身就不太友好手指力量控制不好就容易误触能调节总比不能调节好。4.4 调试技巧与日志埋点最后分享一个我一直在用的调试套路给触摸事件做“全链路日志”。在 TouchableOpacity 的 onPressIn、onPressOut、onLongPress、onPress 各挂一个带时间戳的 console.log然后结合手势去操作日志里就能清楚看到事件在哪个环节丢失、哪个环节乱序。const log (event) { console.log([touch] ${event} ${Date.now()}); }; TouchableOpacity onPressIn{() log(pressIn)} onPressOut{() log(pressOut)} onLongPress{() log(longPress)} onPress{() log(press)} 实测下来这套日志对定位“事件顺序错乱”“onPress 被误触”“事件丢失”这三类问题非常有效。日志只保留在开发阶段上线前记得删掉避免无谓的性能损耗和日志刷屏。另外建议在真机上测试时左手操作屏幕右手观察日志输出很快就能建立事件时序的直觉。5. 从项目实战中沉淀的几个心得这一节算是我自己最想分享的东西不是操作手册而是几个真实体会。5.1 一个 Hook 解决重复劳动长按加点击的区分逻辑第一次写觉得新鲜第二次写就嫌烦了。后来我把它抽成了一个 useLongPressPress 的 Hook把 ref、重置逻辑、回调绑定都封装进去业务侧只需要传入 onPress 和 onLongPress 两个函数就行。封装之后代码量减少一半出错概率也低很多。如果你也在多个页面用长按交互建议尽早做这层抽象别等到代码复制了七八份再回头重构。5.2 别迷信“默认值”TouchableOpacity 的默认参数在大多数场景下是合理的选择但不代表它适合所有场景。我唯一一次在生产环境里出了问题就是相信了默认的 activeOpacity 0.2结果在浅色背景的列表里按下去整个卡片几乎透明用户反馈“看起来像被删除了”。后来统一改成 0.65 之后这种误读就再没出现过。参数这种东西一定要结合你自己的页面风格去调不能图省事直接用默认值。5.3 后续可以扩展的方向长按交互稳定之后我又在这个基础上做了两个扩展一是长按后拖拽排序利用 onPressOut 结合触摸坐标计算位移二是长按呼出快捷操作浮层从 TouchableOpacity 内部迁移到了 Modal 层避免被列表滚动干扰。这两个方向都不复杂核心还是理清触摸事件的时序只要时序控制住RN 在 OpenHarmony 上的交互表现就能做到和原生体验基本一致。最后再说一个我一直保留的习惯每次在新版本适配库上跑老代码第一件事就是在真机上过一遍触摸事件的全链路日志。适配库升级带来行为变化这种事我在实战里遇到过不止一次与其出了问题再头疼不如每次升级后主动花十分钟验证一遍。这套方法不复杂但能帮你省下后面大量的排查时间。

相关新闻

Cursor 安装与汉化全流程:把 settings 改到 TaoToken 的实操大纲

Cursor 安装与汉化全流程:把 settings 改到 TaoToken 的实操大纲

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/17 18:13:49 阅读更多 →
10款AI论文工具实测:继续教育毕业论文改稿选型与学术规范指南

10款AI论文工具实测:继续教育毕业论文改稿选型与学术规范指南

1. “导师又让重写”背后的真实原因:先搞清楚问题再选工具先说个让人血压升高的场景:论文提交上去,导师的批注只有一句“结构松散,论证不清,重写”。这句话我太熟悉了,只要你是在职人员、在继续教育学院读本…

2026/10/17 18:12:48 阅读更多 →
Agent Skills实战:多平台订单自动抓取工作流搭建指南

Agent Skills实战:多平台订单自动抓取工作流搭建指南

做跨境电商运营这几年,我最大的感受就是:每天的时间根本不够用。尤其是多平台铺货之后,订单散在七八个后台里,每十分钟就要切一个页面刷新,录单、对SKU、查物流、看退货原因……朋友介绍我接触了Agent Skills这套思路&…

2026/10/17 18:12:48 阅读更多 →

最新新闻

Kafka接入AI实战:从消息管道到智能数据管道

Kafka接入AI实战:从消息管道到智能数据管道

我这两年跟Kafka打交道的时间,比跟家人说话的时间都多。群里每天都在问“Kafka宕机怎么办”“消费延迟怎么查”,说实话,这些问题翻来覆去就那几个套路。但最近画风变了,大家开始问“Kafka能不能直接把消息丢给大模型处理”“AI能不…

2026/10/17 22:20:22 阅读更多 →
Vue3全栈源码实战:TypeScript类型系统如何撑起可维护链路

Vue3全栈源码实战:TypeScript类型系统如何撑起可维护链路

简介:这份原创源码资料面向希望深入掌握 TypeScript 类型系统并落地 Vue3 全栈项目的前端进阶开发者,围绕高级类型编程、装饰器、全局声明文件等核心知识点展开,同时提供一套 Vue3 TS Pinia 的完整基础项目,可用于工程化实践与项…

2026/10/17 22:20:22 阅读更多 →
萤火商城v2.0.8多端版商业落地:一套代码支撑小程序、H5和App

萤火商城v2.0.8多端版商业落地:一套代码支撑小程序、H5和App

简介:萤火商城 v2.0.8 多端版是一套面向中小型电商创业者、独立开发者与二次开发学习者的轻量级前后端分离电商系统源码,支持微信小程序、H5、公众号与 APP 多端运行,前后端代码 100% 开源,所见即所得,便于快速搭建个性…

2026/10/17 22:20:22 阅读更多 →
微信小说平台CDMS系统实战:从分账结算到避坑指南

微信小说平台CDMS系统实战:从分账结算到避坑指南

简介:草莓CDMS内容分销系统v1.0是一套基于ThinkPHP5.1、EasyWeChat4.0、Swoole和Redis开发的原创内容分销系统,主要面向需要搭建微信小说、漫画、有声等内容平台的技术人员与运营团队。系统提供微信开放平台扫码授权与公众平台手动对接两种模式&#xff…

2026/10/17 22:20:22 阅读更多 →
Flink SQL中ROW_NUMBER() OVER窗口报错解析与避坑指南

Flink SQL中ROW_NUMBER() OVER窗口报错解析与避坑指南

1. 从一个真实报错说起:ROW_NUMBER() 为什么在 Flink SQL 里“水土不服”第一次在 Flink SQL 里写ROW_NUMBER() OVER (PARTITION BY ... ORDER BY ...)去重的时候,我满心以为这就是个标准 SQL 操作,结果提交作业直接给我甩了个异常&#xff0…

2026/10/17 22:20:22 阅读更多 →
Cline 配置 Figma MCP 服务器(Windows):把 settings 改到 TaoToken 的完整步骤

Cline 配置 Figma MCP 服务器(Windows):把 settings 改到 TaoToken 的完整步骤

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/17 22:19:21 阅读更多 →

日新闻

DeepSeek选型与部署:V3/R1、Ollama、API全攻略

DeepSeek选型与部署:V3/R1、Ollama、API全攻略

简介:《DeepSeek使用方法.pdf》是一份面向DeepSeek入门及进阶用户的完整使用指南,重点围绕V3与R1两款模型的能力差异与适用场景展开,帮助读者根据任务类型与成本选择合适的模型。资源共1个PDF文件,压缩包大小约311KB,篇…

2026/10/17 0:00:25 阅读更多 →
200+Deepseek润色指令拆解:从底层原理到场景落地的完整指南

200+Deepseek润色指令拆解:从底层原理到场景落地的完整指南

简介:这是一份聚焦DeepSeek提示词优化的《200Deepseek润色指令》PDF文档,共收录两百余条可直接套用的润色指令,涵盖语法修正、风格统一、逻辑梳理、表达精炼等维度,并针对商务写作、学术论文、广告文案等场景给出差异化建议。文档…

2026/10/17 0:00:25 阅读更多 →
OpenCV轮廓法物体计数系统:轻量、可控、可落地的工业级实现

OpenCV轮廓法物体计数系统:轻量、可控、可落地的工业级实现

简介:本资源是一份基于OpenCV的本科课程设计完整报告,面向计算机视觉初学者、图像处理学习者及高校通信/信息类专业学生,解决物体智能计数与检测结果结构化记录的实际问题。项目覆盖图像预处理、轮廓检测、边界框绘制、轨迹栏交互式参数调节、…

2026/10/17 0:00:25 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/16 21:35:51 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/17 1:44:59 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/16 15:04:24 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 21:54:38 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/17 17:22:31 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 14:23:36 阅读更多 →