无需开发/体验权限,获取任意微信小程序卡片页面路径

背景

工作上正在开发的一款小程序,需要链接到京东购物的一个活动页面。经过搜索发现,除了在小程序内嵌 Webview,小程序内不能直接跳转一个网页,但是京东也是有自己的小程序的,我们可以跳转到京东的小程序吗?查找文档发现可以用 wx.navigateToMiniProgram 打开另一个小程序。

1
2
3
4
wx.navigateToMiniProgram({
appId: '', // 要打开的小程序 appId
path: '' // 打开的页面路径,如果为空则打开首页
})

现在需要的就是京东小程序的 appId 和活动页面的 path 了!

一番操作后,我发现微信 APP 上既不能获取到小程序的 appId 也不能获取到活动页面的 path,若要获得这两样东西,得开启调试才行,想开启调试,至少要成为小程序开发者……

京东小程序的开发者,我怎么可能拿得到嘛,我连他们的开发者都接触不到!

前提

小程序页面至少是可分享的,如果是配置成完全不可分享的小程序,此方法不可用。

方法

拿“抽奖助手”小程序做例子吧。

  1. 打开微信网页版
  2. 登录后,打开 F12 网页调试,到 Network 标签下;
  3. 在手机端将小程序分享给任意好友;
  4. 在 Network 标签下会看到 POST https://wx.qq.com/cgi-bin/mmwebwx-bin/webwxsync 的请求;
  5. 查看 response 是一个 JSON 字符串;
  6. 展开到 AddMsgList[0].Content,看到一个转义的 XML 字符串;
  7. 解码后,得到原始消息 XML;



  1. 查找 <weappinfo>,找到类似下面的这一段数据;
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <weappinfo>
    <pagepath><![CDATA[pages/lucky/lottery/detail.html?id=80018XBB8Mn&home=1]]></pagepath>
    <username></username>
    <appid>wx01bb1ef166cd3f4e</appid>
    <version>732</version>
    <type>2</type>
    <weappiconurl><![CDATA[http://wx.qlogo.cn/mmhead/Q3auHgzwzM6pjwC2de3qEMiaIunrq5WWEdFWlaYBYvhoQPVEA1SfaBw/96]]></weappiconurl>
    <shareId><![CDATA[1_wx01bb1ef166cd3f4e_bd399ef25a9defc93c73fb3cacacacd3_1600911693_0]]></shareId>
    <appservicetype>0</appservicetype>
    <videopageinfo>
    <thumbwidth>720</thumbwidth>
    <thumbheight>576</thumbheight>
    <fromopensdk>0</fromopensdk>
    </videopageinfo>
    </weappinfo>
  2. 其中“wx01bb1ef166cd3f4e”即为我们要找的 appId
    其中“pages/lucky/lottery/detail.html?id=80018XBB8Mn&home=1”删除里面的 .html 后,即为我们要找的 path

无需开发/体验权限,获取任意微信小程序卡片页面路径

https://www.imaegoo.com/2020/weixin-miniprogram-get-path/

作者

iMaeGoo

发布于

2020-09-24

更新于

2020-09-24

许可协议

CC BY 4.0

评论