2024-12-05

uni-app 写微信小程序踩过的坑

#uni-app #wechat #mini-program

微信小程序 myqy-c-wechat 是用 uni-app(Vue)写的。一次编码多端跑,听着省事,真做起来,坑都在"差异"上。

BGM 播放:一个开关的前后

背景音乐由 enable_bgm 标志控制。逻辑很简单——开就播,关就停——但真正麻烦的是生命周期:页面切后台、锁屏、来电,音频行为各平台不一。

// 由 enable_bgm 决定要不要初始化背景音
if (config.enable_bgm) {
  this.bgm = uni.createInnerAudioContext();
  this.bgm.src = "/static/bgm.mp3";
  this.bgm.loop = true;
}

经验:把"要不要播"和"怎么播"分开,开关只管前者,后者无脑执行,逻辑才好测。

uni-app 的边界感

  • 能用条件编译 #ifdef MP-WEIXIN 隔离平台差异,别靠运行时判断糊弄;
  • 小程序没有 window/document,用到浏览器的库要先确认兼容;
  • 真机调试永远比模拟器更真实,BGM 和权限尤其。

一句话

跨端框架省的是重复,省不掉的是"每个端都有自己的脾气"。

← 返回文章列表