无需开发/体验权限,获取任意微信小程序卡片页面路径
背景
工作上正在开发的一款小程序,需要链接到京东购物的一个活动页面。经过搜索发现,除了在小程序内嵌 Webview,小程序内不能直接跳转一个网页,但是京东也是有自己的小程序的,我们可以跳转到京东的小程序吗?查找文档发现可以用 wx.navigateToMiniProgram 打开另一个小程序。
1 | wx.navigateToMiniProgram({ |
现在需要的就是京东小程序的 appId 和活动页面的 path 了!
一番操作后,我发现微信 APP 上既不能获取到小程序的 appId 也不能获取到活动页面的 path,若要获得这两样东西,得开启调试才行,想开启调试,至少要成为小程序开发者……
京东小程序的开发者,我怎么可能拿得到嘛,我连他们的开发者都接触不到!
前提
小程序页面至少是可分享的,如果是配置成完全不可分享的小程序,此方法不可用。
方法
拿“抽奖助手”小程序做例子吧。
- 打开微信网页版;
- 登录后,打开 F12 网页调试,到 Network 标签下;
- 在手机端将小程序分享给任意好友;
- 在 Network 标签下会看到 POST
https://wx.qq.com/cgi-bin/mmwebwx-bin/webwxsync
的请求; - 查看 response 是一个 JSON 字符串;
- 展开到
AddMsgList[0].Content
,看到一个转义的 XML 字符串; - 解码后,得到原始消息 XML;
- 查找
<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> - 其中“
wx01bb1ef166cd3f4e
”即为我们要找的 appId
其中“pages/lucky/lottery/detail.html?id=80018XBB8Mn&home=1
”删除里面的.html
后,即为我们要找的 path
无需开发/体验权限,获取任意微信小程序卡片页面路径