唤起小程序

产品简介

开发者可以通过配置协议的方式,在多种场景下,唤起京东小程序。

使用场景

打开小程序功能,多应用于以下场景:

  1. 1. 宿主app内的原生页面打开指定的小程序;
  2. 2. 宿主app内的H5页面打开指定的小程序;
  3. 3. 宿主外部环境,如微信APP、浏览器打开指定的小程序;

开放标准

对所有入驻小程序的企业开放。

唤起协议

小程序的打开(唤起)协议是openapp协议的字符串,示例如下:

  1. openapp.jdmobile://virtual?params={"category":"jump","des":"jdmp","appId":"小程序原始id","vapptype":"1","path":"要打开的目标小程序的页面","param":{"xx":"xxxx","xx":"xxx"}}
  2. })

参数说明:

参数名类型必填说明
appIdstring要打开的小程序的原始id,可从小程序控制台获取如下图1
vapptypestring打开的小程序的类型,1 对应线上正式小程序 2 体验版小程序 3 真机调试(暂未开放)
pathstring要打开的小程序的某个页面,空的时候,默认打开小程序首页,示例如:"page/index/index.html"
paramstring自定义字段,{} 里面可以自由配置key,value,这些key值,可在小程序onLaunch的生命周期回调中获取,如图2:app.js

图一:原始id的获取

image

图二:获取 param 自定义参数

image

完整示例如下:

  1. openapp.jdmobile://virtual?params={"category":"jump","des":"jdmp","appId":"aoxxxxxxxx","vapptype":"1","path":"page/index/index.html","param":{"xx":"xxxx","xx":"xxx"}}
  2. })

宿主 App 内

宿主app内的原生页面和h5页面,都可以直接通过openapp协议的地址来打开指定的小程序,

h5调用示例如下:

  1. let link = `openapp.jdmobile://virtual?params={"category":"jump","des":"jdmp","appId":"aoxxxxxxxx","vapptype":"1","path":"page/index/index.html","param":{"xx":"xxxx","xx":"xxx"}}`
  2. window.localtion.href = link;
  3. })

宿主 App 外

外部环境,需要将目标小程序拼接成如下链接格式如,通过通用唤起中间页来打开制定的小程序:

  1. https://h5static.jd.com/vapp/appdau/index.html?appId=xxxxxxx&type=1&path=page%2findex%2findex.html%3fname%3daa
  2. })

调用示例如下:

  1. let link = `https://h5static.jd.com/vapp/appdau/index.html?appId=xxxxxxx&type=1&path=page%2findex%2findex.html%3fname%3daa`
  2. window.localtion.href = link;
  3. })

其中,appId和type同openapp协议的 appId 和 vapptype 完全一致,path后面的路径,需要url encode,如原始path字段值如下:page/index/index.html?name=aa,则需要转化成 page%2findex%2findex.html%3fname%3daa;path中的?后面的自定义参数值,同上述 openapp 协议中param 字段一样,可在 app.js 中 onLaunch 回调中获取。