AI实践哪家强?来 AICon, 解锁技术前沿,探寻产业新机! 了解详情
写点什么

鸿蒙版微信小程序不可用,一文告诉你 10 分钟修复

  • 2025-05-28
    北京
  • 本文字数:1976 字

    阅读完需:约 6 分钟

鸿蒙版微信小程序不可用,一文告诉你10分钟修复

最近是否有人反馈微信小程序不可用或者界面异常,比如:


而开发者可能比较困惑,我的代码一直都没有更新过,为什么最近突然这么多报障的了?

其实很有可能反馈者使用的是华为新的鸿蒙操作系统,

华为的 HarmonyOS 5 自从 24 年 9 月开启商用后,发展极为迅速,尤其是 25 年 3 月的 Pura X 以及 5 月底的 Nova 14 系列发布后,用户量增长迅速,预计现有使用者过千万,微信小程序作为基础使用,必不可少,另外,华为新鸿蒙系统基本都在华为高端手机上才适配,这部分用户本身也是相对高价值用户,因此,小程序业主也比较关注这部分用户,作为开发者,需要提早做兼容,避免后续舆情和紧急修复。

本文针对鸿蒙上的小程序常见的一些问题适配,做下分享,大部分开发者可能就改几行代码(微信小程序本身就是类 OS 系统,本身就是跨端),就能完成适配。(微信开发者官网提示说明)

1. platform 支持问题

小程序开发者习惯针对不同的平台做不同的策略处理,比如,区分 andorid, ios , windows, 那么在新增一个 OS 系统 HarmonyOS 的时候,可能就让程序不可用。

举例(错误代码):


wx.getSystemInfo({

success: function (t) {

var p = t.platform;

this.isMobile = "android" === p || "ios" === p;

}

fail: function (t) {

this.isMobile = 0;

}

})

 

举例(错误代码):

var p = wx.getSystemInfoSync();

var num = {

devtools: 44,

ios: 40, // IOS平台

android: 48 // android平台

} [p.platform],

this.someting.set(num);

 

建议修改代码(平台判断时,需要增加鸿蒙平台的识别):

wx.getSystemInfo({

success: function (t) {

var p = t.platform;

this.isMobile = "android" === p || "ios" === p || "ohos" === p;

}

fail: function (t) {

this.isMobile = 0;

}

})


建议修改代码(业务适配时,增加鸿蒙平台的处理):

var p = wx.getSystemInfoSync();

var num = {

devtools: 44,

ios: 40,

android: 48,

ohos: 48,

} [p.platform],

this.someting.set(num);


快速排查建议:

​ 针对此类问题,建议在代码中搜索调用 getSystemInfoSync /getSystemInfo/getDeviceInfo 的地方,看看相关逻辑是否只处理 IOS/android, 如果存在上述问题,建议优先加入 OHOS 分支,尝试让代码走 android 分支即可。

2. UserAgent 支持问题

部分微信小程序开发者会使用 UA 的系统版本/XWEB 等描述进行策略区分,导致小程序在新增 HarmonyOS 的环境,代码走入异常分支。


举例:android 和 HarmonyOS 的 UA 参考

HarmonyOS Next 微信的 UA(微信 1.0.6.41 版本测试):

Mozilla/5.0 (Phone; ***OpenHarmony 5.0***) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36 ***ArkWeb***/4.1.6.1 Mobile MicroMessenger/8.0.6.41(0xf3100629) Weixin NetType/4G Lang uage/zh_CN MiniProgramEnv/ohos MMWE BID/8794 MMWEBSDK/202504030004X WEB/1140209


Android 系统微信中的 UA:

Mozilla/5.0 (Linux; ***Android 12***; ALT-AL10 Build/HUAWEIALT-AL10; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/130.0.6723.103 Mobile Safari/537.36 ***XWEB***/1300149 MMWEBSDK/20241103 MMWEBID/6593 MicroMessenger/8.0.54.2760(0x2800363F) WeChat/arm64 Weixin NetType/WIFI Language/zh_CN ABI/arm64


如何适配:

1. 针对是否是移动端的设备,需要增加检测是否包含 OpenHarmony 的判断。

2. 其他针对 UA 返回值里面的字符串匹配,建议要区分 OpenHarmony 的平台,比如,ArkWeb/XWEB.


举例(错误代码)

 

function isMobile() {

var e = navigator.userAgent.toLowerCase();

return /Android|webos|iPhone|iPod|BlackBerry/i.test(e) ? !0 : 0; // 小程序只在移动端支持

}


建议修改代码(平台判断时,需要增加鸿蒙平台的识别):

function isMobile() {

var e = navigator.userAgent.toLowerCase();

return /Android|webos|iPhone|iPod|BlackBerry|OpenHarmony/i.test(e) ? !0 : 0; // 移动端新增openHarmony支持

}

 

快速排查建议:

针对此类问题,建议在代码中搜索调用 navigator.userAgent 的地方,看看相关逻辑是否未考虑 HarmonyOS 的逻辑, 如果存在上述问题,建议优先加入 OHOS 分支,尝试让代码走 android 分支即可。

3. 其他问题

作者在开发中也遇到一些其他问题,比如,鸿蒙上微信小程序的支持 API 还不完善,导致个别功能受阻,

可以去官网看最新的 API 列表中:https://developers.weixin.qq.com/miniprogram/dev/api/

找到希望使用的 API 以后,在看这里可以确认当前是否支持鸿蒙:


遇到尚未支持的 API,可以通过这里向微信小程序官方进行反馈:

https://developers.weixin.qq.com/community/blog/create/1


 

好在微信现在更新挺快的,基本上 1 个月好几个内测版本更新,应该是在快速补齐能力,建议小程序开发者可以定期 1-2 周查看下需要的 API 是否已支持。

4. 参考文档

鸿蒙 OS 适配指南developers.weixin.qq.com/miniprogram…

微信开放标签developers.weixin.qq.com/doc/offiacc…

2025-05-28 11:124556

评论

发布
暂无评论

zk基础—Curator的使用与剖析

量贩潮汐·WholesaleTide

架构

极氪汽车云原生架构落地实践

阿里巴巴云原生

阿里云 微服务 云原生

​​JNPF快速开发平台的八大核心职能

伤感汤姆布利柏

XEOS 与 AutoMQ 推出联合方案,共筑云原生 Kafka 新生态

AutoMQ

云计算 大数据 云原生 XSKY AutoMQ

初识华为RazorAttention

zjun

十个很实用的前端工具库,快来看看吧!

伤感汤姆布利柏

【2025年最全电商数据API清单】商品/订单/物流一键搞掂!程序员&运营速藏

代码忍者

API 接口

DApp开发必看!全球合规白皮书:DAO治理+跨链技术落地策略

区块链软件开发推广运营

交易所开发 dapp开发 链游开发 公链开发 代币开发

共探 AI 硬件未来图景,火山引擎“智变浪潮”技术沙龙圆满落幕

火山引擎边缘云

AIOT AI 大底座 AI 数据基础设施

什么是鱼骨图,怎么用AI制作鱼骨图?4个鱼骨图生成工具盘点!

职场工具箱

人工智能 效率工具 AI软件 AIGC 鱼骨图

三级等保测评的企业需要做什么准备?

黑龙江陆陆信息测评部

2025链游开发爆款攻略:AI+跨链技术实战指南

区块链软件开发推广运营

交易所开发 dapp开发 链游开发 公链开发 代币开发

新版 Midjourney V7 支持语音生图;语音 AI 平台 Phonic 融资 400 万美元,构建自主端到端模型丨日报

声网

国产替代势不可挡:大型企业ERP国产替代的挑战与机遇

用友BIP

ERP 国产替代 用友BIP 数智底座

腾讯云服务器怎么对接高防

网络安全服务

CDN DDoS 腾讯云服务器 高防IP DDoS 攻击

《Operating System Concepts》阅读笔记:p586-p586

codists

操作系统

API安全与管理(上海)技术沙龙,火热报名中!

云智慧AIOps社区

API 策略

企业网络优化:如何通过SD-WAN实现办公应用加速

Ogcloud

SD-WAN SD-WAN组网 SD-WAN厂商 sd-wan专线 SD-WAN厂家

企业多分支机构组网有哪些难点?怎么解决?

Ogcloud

SD-WAN 企业组网 SD-WAN组网 异地组网 分支组网

吉利汽车采用 EMQX 与AutoMQ联合方案构建公私有云一体化的车联网核心架构

AutoMQ

云计算 大数据 混合云架构 AutoMQ 吉利汽车

zk源码—数据节点与Watcher机制及权限

不在线第一只蜗牛

源码 架构 zk

条件锁存在的意义:用生活中的例子秒懂线程间的"暗号系统"

不在线第一只蜗牛

Java

Swagger 中的 x-nullable 是什么意思?

数据追梦人

科技向善|智源联合南开大学HLT Lab开源两大中文语音数据集,填补老幼人群语音研究空白

智源研究院

博睿数据全面接入DeepSeek:运用AI 铺就大模型可观测性进阶之路

博睿数据

博睿数据 DeepSeek v3

什么是BTC铭文?什么是MSKE马斯克铭文?

MSKE铭文

区块链 数字货币 MSKE铭文 马斯克铭文 比特币铭文

征文大赛 |「码」上数据库—— KWDB 2025 创作者计划启动

KaiwuDB

征文大赛 征文活动 征文投稿 数据库、 KaiwuDB 分布式多模数据库

过剩与稀缺:现代社会的思考与启示

TechLead Studio

个人成长

低代码平台的技术演进与优化分析

JeeLowCode低代码平台

低代码 低代码开发 低代码选择

抓住AI时代机遇,从伙伴与华为共筑行业解决方案开始

脑极体

AI

Kube Scheduler 可观测性最佳实践

观测云

Kubernetes

鸿蒙版微信小程序不可用,一文告诉你10分钟修复_HarmonyOS_HarmonyOS_InfoQ精选文章