告别原生导航栏:微信小程序自定义导航栏完美适配方案

为什么需要自定义导航栏?

原生小程序导航栏虽然开箱即用,但在实际开发中常常遇到以下痛点:

  • 设计风格受限:无法自由定制背景、字体颜色、高度,难以融入品牌设计
  • 扩展能力弱:无法在导航栏区域增加搜索框、自定义按钮、动态效果等
  • 无法实现沉浸式:标题栏与状态栏分离感强,缺少整体感
  • 屏幕适配难:不同机型(刘海屏、挖孔屏、动态岛)的高度表现不一致

因此,自定义导航栏成为许多商业项目和小程序框架的标配。本文将手把手教你实现一套适配所有主流机型、易扩展、性能优良的自定义导航栏组件。

基础配置:开启自定义模式

在 app.json 中将 navigationStyle 设置为 custom:

1
2
3
4
5
6
7
8

{
"window": {
"navigationStyle": "custom",
"navigationBarTextStyle": "black" // 仅对页面内文本颜色有影响,导航栏已隐藏
}
}

💡 小贴士:也可以单独为某个页面配置,在页面目录的 .json 文件中设置相同字段即可。

配置完成后,小程序所有页面将不再渲染原生导航栏,状态栏区域完全暴露,需要我们自己实现导航UI和内容区域的避让。

继续阅读全文 »

在安卓手机上运行OpenClaw?当然可以,用Termux折腾OpenClaw安装QQ机器人的踩坑记录...

前言

最近想在手机上跑一个 QQ 机器人,选了个看起来挺灵活的框架 OpenClaw。本以为按文档几分钟就能搞定,结果断断续续折腾了一晚上。这里记一下过程,给同样在 Termux 上折腾的人省点时间。

为什么选 OpenClaw

主要看中它支持多平台(QQ、微信、Telegram 等),还能接各种大模型。我想把智谱的免费模型 glm-4.7-flash 接上 QQ,手机上跑着省电。

第一个坑:插件找不到

装完 OpenClaw 后,配置文件里加了 openclaw-qqbot,结果启动报错:

1
plugins.allow: plugin not found: openclaw-qqbot

官方的安装命令跑了一遍,又说找不到 openclaw/dist/plugins-sdk/index_js/core。搜了一下,大概是版本不匹配——OpenClaw 核心和 QQ 插件各说各话。

第二个坑:Node.js 编译失败

升级 Node.js 到 v24 后,npm install -g openclaw@latest 直接挂掉,卡在 tree-sitter-bash 的编译上:

1
gyp: Undefined variable android_ndk_path in binding.gyp

这是 Termux 环境的老毛病了——Android 的 C 库(Bionic)和很多 npm 原生模块不对付。折腾半天无解,决定换路子。

终极方案:Ubuntu 容器

Termux 里有个 proot-distro 可以跑完整 Linux 发行版。既然原生环境不行,就在容器里装。

继续阅读全文 »

个人开发工具之抖音直播录制工具:一款功能强大的Android直播录制应用

前言

在移动互联网时代,直播已经成为一种重要的内容形式。有时我们会希望将喜欢的直播内容保存下来,以便日后回顾或学习。今天为大家介绍一款博主设计并基于uni-app开发的抖音直播录制工具,它不仅支持普通的录制功能,可以进行后台不需要看着直播画面进行录制抖音直播画面,还具备自动检测、后台保活等进阶特性。

配图_应用主界面截图

继续阅读全文 »

UniApp中Canvas绘图的易错点与踩坑指南

在UniApp中使用Canvas绘图时,常常会遇到一些容易忽略的问题和陷阱。本文将总结这些易错点,并提供解决方案,帮助你避免踩坑,提升开发效率。

继续阅读全文 »

QQ频道机器人与UniApp开发:常见踩坑点与解决方案

在开发QQ频道机器人和UniApp应用的过程中,可能会遇到一些常见的错误和坑。本文将总结这些容易出错的地方,并提供解决方案,帮助你更顺利地完成开发。

继续阅读全文 »

UniApp中Canvas绘图不显示的常见问题与解决方案

在UniApp中使用Canvas绘图时,可能会遇到绘图内容不显示的问题。本文将总结这些常见问题的原因,并提供解决方案,帮助你快速定位和解决问题。

继续阅读全文 »

Hexo博客实现随机文章功能的完整教程

想要给博客增加一些趣味性?让读者可以随机浏览你的文章是个不错的选择。本文将详细介绍如何在Hexo博客中实现随机文章功能,就跟本博客的侧栏导航中的【手气】菜单一样的效果。

继续阅读全文 »

QQ频道机器人Android客户端使用指南

QQ频道机器人 Android客户端

一个用于管理和操作QQ频道机器人的Android客户端应用,基于uniapp开发,提供了直观的用户界面和丰富的功能特性。

客户端界面预览

登录频道聊天查看和发送消息

插件功能运行日志和设置

功能特性

1. 账号管理

  • App ID和Token登录
  • 记住登录状态
  • 自动登录选项
  • 沙盒/正式环境切换
  • 多账号管理
  • 账号安全保护

2. 频道管理

  • 频道列表显示
    • 分组展示
    • 在线人数显示
    • 频道类型图标
    • 频道状态标识
  • 未读消息统计
    • 普通消息计数
    • @消息特别标记
    • 按频道分类统计
  • 频道权限管理
    • 自动识别管理员权限
    • 权限值实时计算
    • 权限检查功能

3. 消息功能

安卓版QQ频道机器人APP客户端插件开发指南

本文档将指导您如何为QQ频道机器人客户端开发插件。

插件结构

每个插件都是一个标准的 JavaScript 文件,需要导出一个包含以下字段的对象:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
// 插件对象
const plugin = {
// 基本信息(必需)
id: 'plugin-id', // 插件ID,只能包含小写字母、数字、下划线和横线
name: '插件名称', // 插件显示名称
description: '插件描述', // 插件功能描述
command: '/命令', // 触发命令,必须以/开头

// 基本信息(可选)
version: '1.0.0', // 插件版本号
author: '作者名称', // 插件作者
enabled: true, // 插件是否启用

// 配置项(可选)
config: {
// 插件的配置项
minPoints: 10, // 示例:最小积分
maxPoints: 100, // 示例:最大积分
},

// 数据存储(可选)
storage: {
// 插件的数据存储
records: new Map() // 示例:记录存储
},

// 消息处理函数(必需)
handler: async (message, channel, context) => {
// 返回值:
// - 字符串: 要发送的回复消息
// - null/undefined: 不发送回复
// - Promise<string>: 异步返回回复消息
return '回复消息'
}
}

// 导出插件
module.exports = plugin

API 说明

1. 消息对象(message)

继续阅读全文 »

2024年AI编程助手深度评测:哪款最适合你?

随着AI技术的快速发展,各种AI编程助手层出不穷。本文将深入对比主流AI编程助手的优缺点,帮助你找到最适合自己的AI编程伙伴。

继续阅读全文 »

uni-app地图定位踩坑记:地图功能和定位的那些坑

在uni-app开发中,地图和定位功能经常会遇到各种问题。本文总结了一些常见的坑和解决方案,帮助大家更好地实现地图相关功能。

继续阅读全文 »

uni-app文件上传踩坑记:图片处理和上传全攻略

在uni-app开发中,文件上传和图片处理是很常见的需求,但也经常会遇到各种问题。本文总结了一些常见问题和解决方案,希望能帮助大家更好地处理文件上传相关的需求。

继续阅读全文 »