鸿蒙版微信小程序不可用,一文告诉你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个多商户、多平台版 微信小程序(多商户、多平台版),影城行业、影业连锁 多商户、多平台版微信小程序。(基于多平台版,支持在业务上 可给 每个单独影城 分发定制单独的小程序版本)

    1个 影城行业 微信小程序(多商户.多平台版), 影业连锁 多商户.多平台版微信小程序.(基于多平台版,支持在业务上 可给 每个单独影城 分发定制单独的小程序版本) 资讯QQ: 876635409  ...

  2. WordPress版微信小程序3.5版发布

    最近花时间对WordPress版微信小程序做了一些完善和调整,修复不少程序的问题.一个程序的完善是持续和渐进的,没有最好,只有更完善.虽然会采纳一些用户的建议和意见,但我会从一个产品角度去考虑,哪些功 ...

  3. WordPress版微信小程序3.2版发布

    WordPress版微信小程序(下称开源版)距离上次更新已经过去大半年了,在此期间,我开发新的专业版本-微慕小程序(下称微慕版),同时开源版的用户越来越多,截止到2018年11月26日,在github ...

  4. WordPress版微信小程序3.1.5版的新功能

    产品的完善是无止境,每过段时间就会发现产品的新问题,使用的人越多,提的需求也会越多,我听得最多的一句话就是:如果加上某某功能就完美了.其实,完美是不存在的,每个人的视角不一样,完美的定义也是不一样的. ...

  5. WordPress版微信小程序3.0版发布

    距离WordPress版微信小程序上一个版本的发布过去了一个月了.在此间,我的工作有些变化,加上正在开发新版本,目前开源版的完善和升级稍稍有些滞后. 虽然这个版本是3.0版,期间有个过渡的2.8版,不 ...

  6. WordPress版微信小程序2.6版发布

    WordPress版微信小程序的完善和升级的工作一直都在进行中,我争取保证一个月可以出一个版本,希望通过一点点的改进,让这个开源产品日趋完美. 同时,pro版WordPress微信小程序也在紧锣密鼓的 ...

  7. WordPress版微信小程序安装使用说明

    昨天在群里,有刚刚使用WordPress版微信小程序朋友,在问安装过程中的问题,这些问题是经常被问到,这至少说明两个问题: 1.我开发的程序安装和使用不够简易,无法通过简单的配置就可以使用,特别是如果 ...

  8. WordPress版微信小程序2.4版发布

    自从发布2017年9月16日WordPress版微信小程序2.2.8版本后,这个一个多月来,WordPress版微信小程序,在经过一些比较小的更新后,今天发布阶段性的版本:2.4版 .这版本主要是功能 ...

  9. 优秀WordPress版微信小程序推荐(二)

    随着使用WordPress版微信小程序的用户越来越多,其中涌现不少优秀的小程序,无论UI设计还是功能上都远远超过我开源的程序.这次是推荐第二批优秀Wordpress版微信小程序,希望有更多的小程序的爱 ...

  10. WordPress版微信小程序开发系列(二):安装使用问答

    自WordPress版微信小程序发布开源以来,受关注的程度超过我原来的想象.这套程序主要面对的用户是wordpress网站的站长,如果wordpress站想在微信的生态圈得到推广,小程序成为一种重要的 ...

随机推荐

  1. idea社区版配置springboot项目问题分析及处理

    前言 记录一次使用IDEA社区版配置SpringBoot项目的经历,包括遇到的问题及解决过程 IDEA版本:IntelliJ IDEA 2024.2.3 (Community Edition) 问题描 ...

  2. ERROR: Unexpected bus error encountered in worker. This might be caused by insufficient shared memory (shm).

    报错 ERROR: Unexpected bus error encountered in worker. This might be caused by insufficient shared me ...

  3. Django实战项目-学习任务系统-文章汇总

    学习任务系统1.0版本已经基本完成了.现在按顺序整理下文章和链接,按照开发时间顺序列举,方便想要完整学习的人. 理论上说,按照文章代码可以搭建该系统的70%主体功能,剩下一些小的功能自己参考现有代码学 ...

  4. Windows 终端远程连接 Ubuntu

    博客地址:https://www.cnblogs.com/zylyehuo/ 查看 ip 的方式参考以下链接 Ubuntu 下查看 ip - zylyehuo - 博客园 在 windows 终端中执 ...

  5. DevOps - DevOps基础概念梳理

    目录 DevOps DevOps的好处与价值 可能的几个关注点 DevOps能力环 DevOps与持续集成.持续交付 一个完整的过程 典型的CICD流水线过程 DevOps黄金思维圈 初见 一些图示 ...

  6. 项目管理知识体系指南(PMBOK 指南)

    项目管理知识体系指南(PMBOK 指南) 第6版--笔记项目管理十大知识领域,五大管理过程组,49个过程.如下表格:项目:项目的定义 : (Project Management Institute)项 ...

  7. "油猴脚本""篡改猴"领域的一些基本常识

    本文简要介绍本人对"油猴脚本","篡改猴"领域的一些见解,内容注定不可能一步到位和事无巨细,欢迎各位仁人志士对我批评指正,提出意见建议.另外转载前请务必注明作者 ...

  8. 【开源推荐】AI Interviewer:基于Spring-Alibaba-AI的智能面试官系统(附GitHub实战教程)

    项目背景 作为开发者,你是否经历过: 技术面试时因紧张发挥失常? 刷了1000+LeetCode却不会表达解题思路? 花费上千元购买模拟面试服务? 今天推荐的AI Interviewer开源项目,正是 ...

  9. HTB打靶记录-Administrator

    # 信息收集 nmap -sV -sC -O 10.10.11.42 Nmap scan report for 10.10.11.42 Host is up (0.70s latency). Not ...

  10. AI工具推荐:使用AnythingLLM帮助你学习

    AnythingLLM介绍 AnythingLLM 是一个最容易使用的全能 AI 应用,可以进行 RAG.AI 代理等多种功能,无需编写代码或担心基础设施问题. GitHub地址:https://gi ...