编注:今日有用户发现微信对小程序跳转做了每日生成的次数限制(每日生成上限为 50 万,长期有效的 URL Schemes 上限为 10 万个),本文介绍的功能可能存在跳转失败的风险。
相信这两年来,大家最常见的一个场景就是进入公共场所时打开健康码。然而,国内的安卓厂商早就把这项功能玩出花的时候,一些地区(比如广东)的 iOS 用户却每次都要点开微信或支付宝进行多次操作,着实不方便。
直到最近,V2EX 网友 @ITisCool 终于发现了粤康码和穗康码的 URL Scheme(原帖链接:https://v2ex.com/t/797533),也让我们终于可以在主屏幕上一键打开它们了。关注少数派,在后台回复「小程序」即可获得各地健康码下载链接。▍快捷指令是如何实现的?
看完效果后,我们再来说说它是如何实现的。其实,这个快捷指令实现的方式并不难,它是通过 iOS 上的「URL Scheme」来实现的。把 App 内的各种页面比作成网页,URL Scheme 就相当于 App 内的网址,有了它,我们就能通过在浏览器地址栏中直接跳转到指定的 App 页面中去。理论上来说,App 的每个页面都可以提供一个 URL Scheme,只要我们获取到它,就可以实现上面的效果。例如,https://sspai.com/matrix 这个网址中,「sspai.com」是域名,「/」后面的是域名下的目录。而我们再来看看粤康码的 URL Scheme:weixin://app/wxd930ea5d5a258f4f/jumpWxa/?userName=gh_1ac06b5a8f4e&path=operation_plus/pages/yiqing/daka/user/index/index.html
其中,weixin://app 是告诉系统,跳转到微信 App,相当于是网址中的https://sspai.com,而后面的 wxd930ea5d5a258f4f 则为固定 ID,不需要更改。jumpWxa 可以理解成「Jump to Weixin app」,意思是告诉微信打开小程序,而后面紧跟的 ?userName= 就是小程序的原始 ID。如果只需要跳转到小程序主页,那么只需要到这里即可,&path 之后的内容都可以不填。但如果想跳转到小程序内的特定界面,则需要找到它的页面地址,然后加上 &path= 并在后面加上页面路径。▍如何获取小程序的原始 ID?
小程序原始 ID 的获取十分方便。在任意一个小程序内,点击右上角的更多符号,然后点击小程序标题,进入到关于的界面。接着,在「更多资料」中,我们就能看到小程序的原始 ID 了,将它直接复制到快捷指令中使用即可。▍如何获取小程序内页面的路径信息
获取小程序内页面的路径信息,一般有两种方法,一种是通过网络软件抓包,一种是通过微信公众号后台来获取。抓包的方法对于普通用户来说可能有较高难度,因此这里我们介绍后者。首先,我们需要一个能进入后台的微信公众号,然后新建图文,并在最上方的选项中选择小程序。接着,直接搜索我们需要的小程序,这里同样以粤省事作为例子。搜索出结果之后,点击下一步。进入到详细设置页面之后,在小程序路径的列表下,点击「获取更多页面路径」,并在弹出的界面中输入你的微信号后,点击开启。这个时候,我们拿出手机进入对应的小程序页面,点击右上角的更多符号,就会看到「复制页面路径」的按钮,点按即可将当前页面的详细路径复制出来。▍将 URL Schemes 做成快捷指令
有了小程序的原始 ID 和页面路径信息,我们就可以将它们打包成 URL Schemes,并添加到快捷指令来使用了。你只需要将编写好的 URL Schemes 粘贴到这个快捷指令的文本框中即可运行。关注少数派,在后台回复「小程序」即可获得下载链接。为了方便大家的使用,我们还制作了一个制作 URL Schemes 的快捷指令,只要在里面填上原始 ID 和页面路径信息,即可自动生成完整的 URL Schemes。在后台回复「小程序」即可获得下载链接。在使用快捷指令时,你需要先复制小程序的原始 ID,再运行快捷指令,并将其粘贴至输入框中。如果你想复制路径的话,快捷指令也会自动跳转至微信,你只要按照前面的步骤复制路径,随后回到快捷指令即可。 更多玩法
在知道了原理之后,我们可以根据这些方法来开发出更多新玩法。根据上述方法,你不但可以像 Android 用户一样,把小程序保存到桌面上,甚至还能做到一键点外卖、一键购物,甚至是快速打开乘车码、一键打车。▍把小程序添加到桌面并自定义图标
由于如今不少 App 都有小程序版本,如果它已经满足我们的使用,那么就可以将它添加到桌面,节约手机存储空间。在快捷指令中新建一个快捷指令,并命名成对应的小程序 App,接着搜索「Safari」,选择「打开 URL」,将 URL Schemes 填入。接着,点击右上角的设置按钮或是下方的分享按钮,选择添加到主屏幕,随后将图标替换成我们准备好的应用图标,并输入对应的名称,点击添加,它就会出现在主屏幕了。在 iOS 15 中,仅仅第一次运行时会弹出通知,此后便可以直接跳转到微信内的对应小程序页面,做到一键开启。同理,一些经常使用的小程序内页面,我们也可以通过这样的方式添加到桌面,例如打车小程序、公交查询和大数据行程卡等。▍一键打开乘车码
以羊城通为例,打开小程序后,不但有开屏广告,而且还多了一个点击「扫码乘车」的步骤,非常不方便。而有了下面这个 URL Schemes 后,我们就可以精准地一键打开羊城通的乘车码页面了。weixin://app/wxd930ea5d5a258f4f/jumpWxa/?userName=gh_675469036c10&path=pages/new-main-page/new-main-page.html?status=NORMAL&phone=手机号&userId=用户 ID
由于在路径中会包含你的手机号和用户 ID,因此我们不建议你将乘车码的路径分享给他人。如果你在其他城市,也可以根据前文提到的方法制作当地的 URL Schemes 并添加到快捷指令中。▍一键点外卖
饿了么、美团外卖这样的小程序在使用上已经达到了接近 App 的水准,因此将它们的搜索页面通过上面的方法添加到快捷指令,便可以达到一键点外卖的效果了。美团外卖:weixin://app/wxd930ea5d5a258f4f/jumpWxa/?userName=gh_72a4eb2d4324&path=packages/index/search/search.html?饿了么:weixin://app/wxd930ea5d5a258f4f/jumpWxa/?userName=gh_6506303a12bb&path=ele-search/pages/search/search.html?
此外,我们还可以通过获取对应餐厅页面的路径,将它们的 URL Scheme 做成快捷指令,实现一键进入汉堡王买六个汉堡的功能。▍一键购物
通过将商品搜索页面的 URL Scheme 提取出来,然后把关键词设置成填写项目,就能够实现一键购物搜索了。例如,少数派商店小程序的 URL Scheme 如下:weixin://app/wxd930ea5d5a258f4f/jumpWxa/?userName=gh_de14512926a5&path=packages/shop/goods/search/index.html?q=搜索关键词&type=common
在快捷指令中,我们首先添加一个「要求输入」的步骤,输入的页面标题我选择的是「要搜索什么商品?」。接着,我们创建一个文本内容,将上面的地址复制到文本框中。接着,选中「搜索关键词」这几个字,在下面点击「选择变量」,然后点击上方「提供的输入」,然后再点击完成。最后,添加一个打开 URL 的快捷指令,在地址栏中选择文本即可。将它添加到桌面之后,便能够一键执行稿费回收计划了。当然,你也可以直接在后台回复「小程序」获取下载链接,同样的逻辑也可以套用在你常用的其他购物小程序中。在实际测试中,部分小程序不支持修改搜索关键词,只能跳转至搜索页面。
▍小结
本文为大家分析了「一键打开小程序」的实现原理,希望能够帮大家打开思路,创建更多实用、有趣的小程序快捷指令。关于 URL Scheme 的简单介绍和玩法,我们就先说到这里。你还有什么更多新奇好玩的想法?欢迎在评论中和我们分享。
编注:今日有用户发现微信对小程序跳转做了每日生成的次数限制(每日生成上限为 50 万,长期有效的 URL Schemes 上限为 10 万个),本文介绍的功能可能存在跳转失败的风险。