js开发怎样将小程序添加到手机桌面

简介: js开发怎样将小程序添加到手机桌面

如何通过JS开发,让微信小程序支持添加到手机桌面?

一、核心前提(必须满足)

小程序不是网页,不能用普通网页的 beforeinstallprompt,只能用微信官方API
支持情况:

  • 安卓手机:完全支持,可直接添加桌面图标
  • iOS 苹果手机微信官方不支持,无法通过代码实现,只能手动分享 -> 添加到主屏幕
  • 基础库版本:≥2.10.3

二、安卓端:JS 代码实现(一键添加桌面)

1. 核心 API

wx.showAddToDesktop({
   
  success(res) {
   
    console.log('发起添加桌面成功', res)
  },
  fail(err) {
   
    console.log('添加桌面失败', err)
  }
})

2. 完整按钮点击示例(wxml + js)

page.wxml

<button bindtap="addDesktop" type="primary">
  添加到手机桌面
</button>

page.js

Page({
   
  // 添加到桌面
  addDesktop() {
   
    // 1. 先判断是否支持
    const version = wx.getSystemInfoSync().SDKVersion
    if (this.compareVersion(version, '2.10.3') < 0) {
   
      wx.showToast({
   
        title: '微信版本过低,不支持',
        icon: 'none'
      })
      return
    }

    // 2. 调用官方API
    wx.showAddToDesktop({
   
      success() {
   
        wx.showToast({
   
          title: '已发起添加,按提示完成',
          icon: 'none'
        })
      },
      fail(err) {
   
        console.error(err)
        wx.showToast({
   
          title: '添加失败,请开启桌面快捷方式权限',
          icon: 'none',
          duration: 3000
        })
      }
    })
  },

  // 版本对比工具函数
  compareVersion(v1, v2) {
   
    v1 = v1.split('.')
    v2 = v2.split('.')
    const len = Math.max(v1.length, v2.length)
    while (v1.length < len) v1.push('0')
    while (v2.length < len) v2.push('0')
    for (let i = 0; i < len; i++) {
   
      const num1 = parseInt(v1[i])
      const num2 = parseInt(v2[i])
      if (num1 > num2) return 1
      if (num1 < num2) return -1
    }
    return 0
  }
})

三、为什么你调用会失败?(90% 的坑)

1. 必须开启权限(安卓)

用户手机必须开启:
设置 → 应用 → 微信 → 权限 → 开启「桌面快捷方式」

2. 必须是发布版小程序

  • 开发版 / 体验版不支持添加桌面
  • 必须上传代码 → 发布上线后才能生效

3. 必须是非个人主体

官方规则:

  • 企业/政府/媒体小程序:支持
  • 个人主体小程序默认不支持(微信限制)

四、iOS 苹果手机怎么办?

iOS 无法用代码实现,只能引导用户手动操作:

引导文案(你可以写在页面上)

苹果手机添加方法:
1. 点击右上角「...」
2. 选择「分享」
3. 点击「添加到主屏幕」

五、最稳妥的兼容写法(推荐直接复制)

addDesktop() {
   
  const system = wx.getSystemInfoSync().system

  // iOS 直接提示手动操作
  if (system.includes('iOS')) {
   
    wx.showModal({
   
      title: '苹果手机添加方式',
      content: '点击右上角「...」→ 分享 → 添加到主屏幕',
      showCancel: false
    })
    return
  }

  // 安卓走官方API
  wx.showAddToDesktop({
   
    success() {
   
      wx.showToast({
    title: '添加成功', icon: 'success' })
    },
    fail() {
   
      wx.showToast({
   
        title: '请开启微信桌面快捷方式权限',
        icon: 'none',
        duration: 3000
      })
    }
  })
}

总结

  1. 安卓:用 wx.showAddToDesktop,必须上线 + 开启权限 + 非个人主体
  2. iOS代码无法实现,只能引导手动添加
  3. 开发版无效,必须发布正式版才能测试
  4. 个人小程序大概率不支持

需要我帮你直接集成到你的小程序项目里吗?我可以按你的页面结构给你写好完整代码。

相关文章
Linux kill了我的程序,咋回事呢
Linux kill了我的程序,咋回事呢
739 145
Linux kill了我的程序,咋回事呢
|
Web App开发 JSON TensorFlow
几行代码分析TensorFlow训练模型耗时
几行代码分析TensorFlow训练模型耗时
1029 139
几行代码分析TensorFlow训练模型耗时
|
自然语言处理 数据可视化 Python
【python词云】利用python对文章进行视觉上的浓缩展现
简介:【python词云】利用python对文章进行视觉上的浓缩展现
783 155
【python词云】利用python对文章进行视觉上的浓缩展现
|
自然语言处理 前端开发
一文学会text-justify,orientation,combine文本属性
一文学会text-justify,orientation,combine文本属性 在深度剖析text-align家族和你不知道的下划线-text-decoration两篇介绍文本属性的时候,我们基本已经学会了很多之前没有使用过的属性,今天我们接着来看更多的文本属性,CSS的世界是精妙的,无尽的,仅仅希望同这三篇文章,可以入得CSS文本属性的基础门。人生短暂,学无止尽。
682 156
|
边缘计算 运维 监控
阿里云全站加速DCDN重磅升级
相比传统CDN加速,全站加速DCDN具有更广阔的应用场景。在当下企业全面数字化的进程中,为了更全面地满足广大企业客户的个性化加速需求,全站加速DCDN从简单开通到个性化定制、从内容分发到安全防护,对客户侧的使用体验进行了全局梳理和全链路优化,全站加速产品功能得到极大增强和完善。12月1日14:00,全站加速DCDN集中升级发布,四位产品专家在线解读了边缘程序、数据日志、边缘安全背后的技术与应用。
1787 155
阿里云全站加速DCDN重磅升级
pandas读excel类型文件报错: xlrd.biffh.XLRDError: Excel xlsx file; not supported
pandas读excel类型文件报错: xlrd.biffh.XLRDError: Excel xlsx file; not supported
10307 132
|
边缘计算 Cloud Native 算法
阿里云 卢日:GRTN打造阿里云边缘云最佳流媒体场景实践
在9月16日上午召开的分布式云主题报告会上,阿里云资深技术专家卢日发表了题为《GRTN打造阿里云边缘云最佳流媒体场景实践》的精彩演讲。
1312 152
阿里云 卢日:GRTN打造阿里云边缘云最佳流媒体场景实践
|
数据挖掘 双11 数据格式
第一批吃螃蟹的人,真香!
双11的一个大项目。
3126 155
第一批吃螃蟹的人,真香!
|
人工智能 机器人
阿里云RPA为财险企业提效900%
财险企业不免存在大量信息录入,保单打印等工作,因此不少企业陷于客户信息确认并录入、车辆信息录入以及险种信息录入和保单打印等繁杂单一的低附加值日常事务性工作中无法抽身,进而无法开展新的工作。
3451 153
阿里云RPA为财险企业提效900%