鸿蒙版微信小程序不可用,一文告诉你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站想在微信的生态圈得到推广,小程序成为一种重要的 ...
随机推荐
- 面试题 17.12. BiNode
地址:https://leetcode-cn.com/problems/binode-lcci/ <?php /** 二叉树数据结构TreeNode可用来表示单向链表(其中left置空,righ ...
- 【Ryan】: linux下安装ftp
在 Linux 系统下安装 FTP 服务器可以使用多种软件,其中最常见的是 vsftpd(Very Secure FTP Daemon)和 ProFTPD(Professional FTP Daemo ...
- nnUNet 使用方法
首先明确分割任务. 其次明确研究方法和步骤. 再做好前期准备,如数据集的采集.标注以及其中的训练集/测试集划分. 其中的参考链接: (四:2020.07.28)nnUNet最舒服的训练教程(让我的奶奶 ...
- HTTP/1.1 优化
避免发送 HTTP 请求 对于一些具有重复性的 HTTP 请求,比如每次请求得到的数据都一样的,我们可以把这对「请求-响应」的数据都缓存在本地,通过缓存技术减少请求次数. 客户端会把第一次请求以及响应 ...
- PVE下安装Centos8.5.2111系统
1.从阿里云镜像下载下载地址:https://mirrors.aliyun.com/centos/8/isos/x86_64/CentOS-8.5.2111-x86_64-boot.iso2.上传镜像 ...
- Linux上安装配置InstantClient及64位系统Pl/SQL配置
1.首先到官网下载文件:http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html?ssS ...
- 解决VuePress中的”Error from chokidar : Error: EBUSY“问题
.title { padding: 10px; background-color: rgba(3, 169, 244, 1); font-size: 16px; color: rgba(255, 25 ...
- Visual Studio 2010 SDK
HTML 5 Intellisense for Visual Studio 2010 and 2008 Visual Studio 2010 SDK Visual Studio 2010 SP1 SD ...
- 使用Python解析求解扩散方程
引言 大家好!今天我们来探讨一个非常重要的物理问题-扩散方程,并用 Python 来求解它.扩散现象广泛存在于自然界中,从气体.液体中分子的扩散,到热量的传递,甚至污染物的扩散,都是扩散方程的应用场景 ...
- Docker安装elasticsearch、kibana、ik分词器
一.下载ealastic search和kibana,两者的版本要一致 docker pull elasticsearch:7.6.2 docker pull kibana:7.6.2 二.配置 mk ...