uni-app 微信小程序分包页面分享问题

uni-app 微信小程序分包页面分享问题

类别 信息
产品分类 uniapp/小程序/微信
PC开发环境 Mac
操作系统版本 15.5
HBuilderX类型 正式
HBuilderX版本 4.75
第三方工具版本 1.06.25.4.10
基础库版本 3.9.2
项目创建方式 HBuilderX

操作步骤:

  1. 微信小程序分包后
  2. 子包页面设置分享到聊天或者朋友圈
  3. 分享页面出去
  4. 点开分享的小程序卡片

预期结果:

打开小程序显示分享的页面

实际结果:

打开小程序空白的

bug描述:

  1. 微信小程序平台 分包里面的页面设置分享到聊天或者微信朋友圈,分享链接打开是空白。(报错Page “xxxxxxxxx” has not been registered yet。)
  2. onShareAppMessage方法可以指定path,所以我直接主包创建一个页面作为分享页面,再跳转子包页面,这样是正常了。
  3. 但是onShareTimeline方法,只能分享当前页面,然后就没法用主包页面中转。


更多关于uni-app 微信小程序分包页面分享问题的实战教程也可以访问 https://www.itying.com/category-93-b0.html

14 回复

【问题已解决】是因为分包设置了"independent": true,独立分包。去掉就可以正常分享了

更多关于uni-app 微信小程序分包页面分享问题的实战教程也可以访问 https://www.itying.com/category-93-b0.html


测试一下原生微信小程序有这个问题吗?

请问你们有过uniapp写的微信小程序分包页面分享的场景吗

分享朋友圈微信不支持自定义分享链接,微信文档:https://developers.weixin.qq.com/miniprogram/dev/reference/api/Page.html#onShareTimeline

感谢你的回答。确实是的。 自定义分享内容时不支持自定义页面路径

回复 3***@qq.com: 可以在query字段携带参数,用来标识朋友圈,在onLoad做处理跳转到相对应的页面

回复 蔡cai: 现在问题是,分享的页面是子包页面,我试过这个方案,onLoad没走,报错报错Page “xxxxxxxxx” has not been registered yet

回复 3***@qq.com: 是分享朋友圈嘛,然后点击进去会报错是吧。但是我分享朋友圈或者分享好友点击进入小程序都正常

回复 3***@qq.com: 你有把开发版微信小程序重新生成一个到手机上嘛

回复 3***@qq.com: 你不会还是旧的开发版小程序或者旧的体验版小程序吧

回复 蔡cai: 重新生成的。你分享的页面,也是分包的页面?

主包的页面分享是正常的,分包的has not been registered yet

回复 3***@qq.com: 是的

在微信小程序中,分包页面的分享确实存在路径解析问题,特别是分享到朋友圈时。这是由于微信客户端在打开分享链接时,需要提前注册页面路径,而分包页面可能尚未加载。

问题分析:

  1. onShareAppMessage 可以通过自定义 path 参数指向主包页面作为中转,这是可行的解决方案。
  2. onShareTimeline 不支持自定义路径,只能分享当前页面,导致分包页面直接分享时出现 Page not registered 错误。

解决方案:

  • 临时方案:将需要分享的页面放置到主包中。如果业务允许,这是最直接的解决方式。
  • 技术方案:利用全局路由管理。在 app.vueonLaunchonShow 中预加载分包路由信息,确保微信在解析分享路径时能正确映射到分包页面。示例代码:
    // app.vue
    onLaunch() {
      if (wx.preloadSubpackage) {
        wx.preloadSubpackage({
          root: 'subpackage_root', // 分包根目录
          success: () => console.log('预加载成功')
        });
      }
    }
回到顶部