什么是 URL Scheme

URL Scheme 是系统提供的一种机制,它可以由应用程序注册,然后其他程序通过 URL Scheme 来调用该应用程序。

URL Scheme 分为两部分:一部分是系统默认的 URL Scheme ,另外一部分是应用程序自己注册的 URL Scheme 。

我们把 URL Scheme 拆开来看

  • URL 统一资源定位符( Uniform Resource Locator )是一个给定的独特资源在 Web 上的地址, 每个有效的 URL 都指向一个唯一的资源。
  • Scheme 是一种页面内跳转协议, 通过定义自己的Scheme协议,可以非常方便跳转App中的各个页面

URL Scheme 可以干什么

通过在程序中嵌入一个URL,然后调用其他应用程序来完成外部程序的功能调用。

举个栗子

# 这是一个可以打开微信扫码界面的 URL Scheme
weixin://scanqrcode
# weixin://是微信的 Scheme 跳转协议
# scanqrcode是微信的扫码页面
# 这是一个打开支付宝付款界面的 URL Scheme
alipayqr://platformapi/startapp?saId=20000056
# alipayqr://是支付宝的 Scheme 跳转协议
# platformapi/startapp?saId=20000056是支付宝的付款页面

常用的 URL Scheme

  • 微信 weixin://
  • QQ mqq://
  • 支付宝 alipay://
  • 淘宝 taobao://
  • 京东 openapp.jdmobile://

URL Scheme 的使用范围

基于上面的介绍 URL Scheme 可以带来一些具有实际意义的帮助。

便捷展示

通过官方提供的小程序快速便捷的展示相关页面。例如:行程卡,健康码。

微信内可以打开小程序的 URL Scheme 为:

weixin://app/wxd930ea5d5a258f4f/jumpWxa/?userName=账号原始ID

获取账号原始ID的途径

在微信内打开任意小程序-->右上角的···-->小程序名称-->更多资料-->账号原始ID

行程卡

有了上面的例子我们照葫芦画瓢,获取通信行程卡小程序的账号原始ID

weixin://app/wxd930ea5d5a258f4f/jumpWxa/?userName=gh_0ed5d82fd775

但是打开后还是需要输入手机号或者授权使用手机号才可以继续使用。接下来就要获取小程序的详细路径,获取方式在 如何获取小程序页面路径 有介绍,这里不在赘述。

获取到的路径格式为:

pages/result/result.html?result={"color":"green","phone":"150****7580","time":"2021.08.26 08:41:25","message":"河南省郑州市"}

不知道是因为程序猿粗心还是为了省事把参数写在了URL里。不过修改这个应该没有什么用,毕竟是通过基站确认的,就像挂着梯子一样,IP在国外,行程卡依然不变。

把获取的小程序路径和 URL Scheme 拼接起来

weixin://app/wxd930ea5d5a258f4f/jumpWxa/?userName=gh_0ed5d82fd775&path=pages/result/result.html?result={"color":"green","phone":"150****7580","time":"2021.08.26 08:41:25","message":"河南省郑州市"}

如果我们把这一串复制到「快捷指令」的打开 URL,小程序可能无法识别。 因为在构造 URL Scheme 时,如果有 {}" 三种需要被编码的字符,记得要加上 }} 进行编码或者直接硬编码,否则 URL Scheme 可能无法被正确识别。

正确的 URL Scheme

weixin(//app/wxd930ea5d5a258f4f/jumpWxa/?userName=gh_0ed5d82fd775&path=pages/result/result.html?result={{{"color":"green","phone":"150****7580","time":"2021.08.26 08:41:25","message":"河南省郑州市")}

在「快捷指令」内需要对 URL 进行编码。具体步骤:新建快捷指令-->使用「编码URL」-->粘贴刚才获取到的小程序路径-->修改「日期」选择「当前日期」,日期格式「自定」修改为 yyyy.MM.dd HH:mm:ss 。使用「URL」-->粘贴行程卡的 URL Scheme -->添加&path= -->URL编码后的文本。使用「打开URL」。放出来一个制作好的 通信行程卡

支付宝健康码

河南地区应该只有支付宝内的「豫事办」提供了河南省内的健康码。使用了一个 开源项目 提供的支付宝健康码,搜索地区-城市即可使用。

快捷访问

在目前的环境下一个App的内存可能大到无法想象,一个非视频类App都会内置短视频功能,使得App越来越臃肿。这样一来 URL Scheme 可以快速访问官方提供的精简版小程序。例如:瑞幸、肯德基、麦当劳、滴滴出行等。

瑞幸

weixin://app/wxd930ea5d5a258f4f/jumpWxa/?userName=gh_fa66ea1664f1

麦当劳

weixin://app/wxd930ea5d5a258f4f/jumpWxa/?userName=gh_f1f7cebb53a3

高德出行

alipays://platformapi/startapp?appId=2018070960585195

总的来说,几乎你想使用的任何应用却又不想安装App,但同时微信/支付宝都提供小程序都可以使用这个方法来快捷访问。

引用