鸿蒙版微信小程序不可用,一文告诉你10分钟修复
鸿蒙版微信小程序不可用,一文告诉你10分钟修复
最近是否有人反馈微信小程序不可用或者界面异常,比如:



而开发者可能比较困惑,我的代码一直都没有更新过,为什么最近突然这么多报障的了?
其实很有可能反馈者使用的是华为新的鸿蒙操作系统,
华为的HarmonyOS 5自从24年9月开启商用后,发展极为迅速,尤其是25年4月的pura x 首个鸿蒙商用设备发布后,用户量增长迅速,预计现有使用者过千万,微信小程序作为基础使用,必不可少,另外,华为新鸿蒙系统基本都在华为高端手机上才适配,这部分用户本身也是相对高价值用户,因此,小程序业主也比较关注这部分用户,作为开发者,需要提早做兼容,避免后续舆情和紧急修复。
本文针对鸿蒙上的小程序常见的一些问题适配,做下分享,大部分开发者可能就改几行代码(微信小程序本身就是类OS系统,本身就是跨端),就能完成适配。(微信开发者官网提示说明)
1. platform支持问题
小程序开发者习惯针对不同的平台做不同的策略处理,比如,区分andorid, ios , windows, 那么在新增一个OS 系统HarmonyOS的时候,可能就让程序不可用。
举例(错误代码):
1. wx.getSystemInfo({
2. success: function (t) {
3. var p = t.platform;
4. this.isMobile = "android" === p || "ios" === p;
5. }
6. fail: function (t) {
7. this.isMobile = 0;
8. }
9. })
举例(错误代码):
1. var p = wx.getSystemInfoSync();
2. var num = {
3. devtools: 44,
4. ios: 40, // IOS平台
5. android: 48 // android平台
6. } [p.platform],
7. this.someting.set(num);
建议修改代码(平台判断时,需要增加鸿蒙平台的识别):
1. wx.getSystemInfo({
2. success: function (t) {
3. var p = t.platform;
4. this.isMobile = "android" === p || "ios" === p || "ohos" === p;
5. }
6. fail: function (t) {
7. this.isMobile = 0;
8. }
9. })
建议修改代码(业务适配时,增加鸿蒙平台的处理):
1. var p = wx.getSystemInfoSync();
2. var num = {
3. devtools: 44,
4. ios: 40,
5. android: 48,
6. ohos: 48,
7. } [p.platform],
8. this.someting.set(num);
快速排查建议:
针对此类问题,建议在代码中搜索 调用getSystemInfoSync /getSystemInfo的地方,看看相关逻辑是否只处理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.
举例(错误代码):
1. function isMobile() {
2. var e = navigator.userAgent.toLowerCase();
3. return /Android|webos|iPhone|iPod|BlackBerry/i.test(e) ? !0 : 0; // 小程序只在移动端支持
4. }
建议修改代码(平台判断时,需要增加鸿蒙平台的识别):
1. function isMobile() {
2. var e = navigator.userAgent.toLowerCase();
3. return /Android|webos|iPhone|iPod|BlackBerry|OpenHarmony/i.test(e) ? !0 : 0; // 移动端新增openHarmony支持
4. }
快速排查建议:
针对此类问题,建议在代码中搜索 调用navigator.userAgent的地方,看看相关逻辑是否未考虑HarmonyOS的逻辑, 如果存在上诉问题,建议优先加入OHOS分支,尝试让代码走android分支即可。
3. 其他问题
作者在开发中也遇到一些其他问题,比如,鸿蒙上微信小程序的支持API还不完善,导致个别功能受阻,
可以去官网看最新的API列表:鸿蒙暂未支持API列表 (qq.com)
好在微信现在更新挺快的,基本上1个月好几个内测版本更新,应该是在快速补齐能力,建议小程序开发者可以定期1-2周查看下API支持列表。
4. 参考文档
鸿蒙 OS 适配指南:https://developers.weixin.qq.com/miniprogram/dev/framework/ability/ohos.html
微信开放标签:https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/Wechat_Open_Tag.html
鸿蒙版微信小程序不可用,一文告诉你10分钟修复的更多相关文章
- 1个多商户、多平台版 微信小程序(多商户、多平台版),影城行业、影业连锁 多商户、多平台版微信小程序。(基于多平台版,支持在业务上 可给 每个单独影城 分发定制单独的小程序版本)
1个 影城行业 微信小程序(多商户.多平台版), 影业连锁 多商户.多平台版微信小程序.(基于多平台版,支持在业务上 可给 每个单独影城 分发定制单独的小程序版本) 资讯QQ: 876635409 ...
- WordPress版微信小程序3.5版发布
最近花时间对WordPress版微信小程序做了一些完善和调整,修复不少程序的问题.一个程序的完善是持续和渐进的,没有最好,只有更完善.虽然会采纳一些用户的建议和意见,但我会从一个产品角度去考虑,哪些功 ...
- WordPress版微信小程序3.2版发布
WordPress版微信小程序(下称开源版)距离上次更新已经过去大半年了,在此期间,我开发新的专业版本-微慕小程序(下称微慕版),同时开源版的用户越来越多,截止到2018年11月26日,在github ...
- WordPress版微信小程序3.1.5版的新功能
产品的完善是无止境,每过段时间就会发现产品的新问题,使用的人越多,提的需求也会越多,我听得最多的一句话就是:如果加上某某功能就完美了.其实,完美是不存在的,每个人的视角不一样,完美的定义也是不一样的. ...
- WordPress版微信小程序3.0版发布
距离WordPress版微信小程序上一个版本的发布过去了一个月了.在此间,我的工作有些变化,加上正在开发新版本,目前开源版的完善和升级稍稍有些滞后. 虽然这个版本是3.0版,期间有个过渡的2.8版,不 ...
- WordPress版微信小程序2.6版发布
WordPress版微信小程序的完善和升级的工作一直都在进行中,我争取保证一个月可以出一个版本,希望通过一点点的改进,让这个开源产品日趋完美. 同时,pro版WordPress微信小程序也在紧锣密鼓的 ...
- WordPress版微信小程序安装使用说明
昨天在群里,有刚刚使用WordPress版微信小程序朋友,在问安装过程中的问题,这些问题是经常被问到,这至少说明两个问题: 1.我开发的程序安装和使用不够简易,无法通过简单的配置就可以使用,特别是如果 ...
- WordPress版微信小程序2.4版发布
自从发布2017年9月16日WordPress版微信小程序2.2.8版本后,这个一个多月来,WordPress版微信小程序,在经过一些比较小的更新后,今天发布阶段性的版本:2.4版 .这版本主要是功能 ...
- 优秀WordPress版微信小程序推荐(二)
随着使用WordPress版微信小程序的用户越来越多,其中涌现不少优秀的小程序,无论UI设计还是功能上都远远超过我开源的程序.这次是推荐第二批优秀Wordpress版微信小程序,希望有更多的小程序的爱 ...
- WordPress版微信小程序开发系列(二):安装使用问答
自WordPress版微信小程序发布开源以来,受关注的程度超过我原来的想象.这套程序主要面对的用户是wordpress网站的站长,如果wordpress站想在微信的生态圈得到推广,小程序成为一种重要的 ...
随机推荐
- Week09_day05(Hbase的介绍和工作原理)
HBase是一个分布式的.面向列的开源数据库,该技术来源于 Fay Chang 所撰写的Google论文"Bigtable:一个结构化数据的分布式存储系统".就像Bigtable利 ...
- Linux用户登录失败锁定策略
1.账户锁定策略介绍 在Linux系统中,为了提高系统安全性,防止暴力破解攻击,我们可以通过配置PAM(Pluggable Authentication Modules)模块来限制登录失败次数并锁定用 ...
- Ollama——大语言模型本地部署的极速利器
1.概述 Ollama 是一款开源跨平台大模型工具,主要用于在本地便捷部署和运行大型语言模型(LLM),核心目标是降低用户使用大模型的门槛,同时保障数据隐私.核心功能与特点如下: (1)本地部署,隐私 ...
- 手把手教你下载b站视频并生成音频字幕
1.下载b站视频: 可以直接使用https://bilibili.iiilab.com/ 贴进去网址就能下载了 2.提取音频 可以使用 ffmpeg 将音频文件提取出来(ffmpeg直接去官网下载即可 ...
- 自制一个超级简单的 php 发邮件的轮子 simpleMailTool.php
simpleMailTool 程序链接 https://github.com/kohunglee/simpleMailTool/ 一个简单的 php 发邮件的轮子,跟其他著名大轮子相比(如 PHPMa ...
- 【Git】在 Idea 中使用 Git
在 Idea 中使用 Git 1 安装 Git 核心程序 根据自己的电脑操作系统从 Git 官网 https://git-scm.com/ 下载对应的 Git 核心程序. 以 git-2.21.0 为 ...
- BaseMultiTableInnerInterceptor源码解读
本文首发在我的博客:https://blog.liuzijian.com/post/mybatis-plus-source-multi-table-inner-interceptor.html 一.概 ...
- 【教程】Anaconda安装
零.Anaconda介绍 Anaconda个人版是一个免费.易于安装的包管理器.环境管理器和Python发行版(所以装了Anaconda就可以不用再另外装Python了),有提供非常多的开源包,用An ...
- Sublime Text 3汉化教程
一.初始化插件仓库 ctrl+`(esc键下方那一个)打开控制台输入以下代码回车 import urllib.request,os,hashlib; h = '6f4c264a24d933ce70df ...
- 『Plotly实战指南』--散点图绘制进阶篇
在数据分析的世界里,散点图是一种极为重要的可视化工具. 它能够直观地展示两个或多个变量之间的关系,帮助我们快速发现数据中的模式.趋势和异常点. 无论是探索变量之间的相关性,还是寻找数据中的潜在规律,散 ...