微信第三方平台代小程序管理 小程序之间互跳的实现

开发十年,就只剩下这套架构体系了! >>>   hot3.png

小程序之间跳转可以利用组件navigator进行跳转,但是需要navigateToMiniProgramAppIdList才能,由于是第三方代小程序管理,看不到源码,所以没法手动配置.开放平台提供自动配置方法.

navigator

页面链接。

属性名 类型 默认值 说明 最低版本
target String self 在哪个目标上发生跳转,默认当前小程序,可选值self/miniProgram 2.0.7
url String   当前小程序内的跳转链接  
open-type String navigate 跳转方式  
delta Number   当 open-type 为 'navigateBack' 时有效,表示回退的层数  
app-id String   当target="miniProgram"时有效,要打开的小程序 appId 2.0.7
path String   当target="miniProgram"时有效,打开的页面路径,如果为空则打开首页 2.0.7
extra-data Object   当target="miniProgram"时有效,需要传递给目标小程序的数据,目标小程序可在 App.onLaunch()App.onShow() 中获取到这份数据。详情 2.0.7
version version release 当target="miniProgram"时有效,要打开的小程序版本,有效值 develop(开发版),trial(体验版),release(正式版),仅在当前小程序为开发版或体验版时此参数有效;如果当前小程序是正式版,则打开的小程序必定是正式版。 2.0.7
hover-class String navigator-hover 指定点击时的样式类,当hover-class="none"时,没有点击态效果  
hover-stop-propagation Boolean false 指定是否阻止本节点的祖先节点出现点击态 1.5.0
hover-start-time Number 50 按住后多久出现点击态,单位毫秒  
hover-stay-time Number 600 手指松开后点击态保留时间,单位毫秒  
bindsuccess String   当target="miniProgram"时有效,跳转小程序成功 2.0.7
bindfail String   当target="miniProgram"时有效,跳转小程序失败 2.0.7
bindcomplete String   当target="miniProgram"时有效,跳转小程序完成 2.0.7

open-type 有效值:

说明 最低版本
navigate 对应 wx.navigateTowx.navigateToMiniProgram 的功能  
redirect 对应 wx.redirectTo 的功能  
switchTab 对应 wx.switchTab 的功能  
reLaunch 对应 wx.reLaunch 的功能 1.1.0
navigateBack 对应 wx.navigateBack 的功能 1.1.0
exit 退出小程序,target="miniProgram"时生效 2.1.0

使用限制

需要用户确认跳转

从 2.3.0 版本开始,在跳转至其他小程序前,将统一增加弹窗,询问是否跳转,用户确认后才可以跳转其他小程序。如果用户点击取消,则回调 fail cancel

每个小程序可跳转的其他小程序数量限制为不超过 10 个

从 2.4.0 版本以及指定日期(具体待定)开始,开发者提交新版小程序代码时,如使用了跳转其他小程序功能,则需要在代码配置中声明将要跳转的小程序名单,限定不超过 10 个,否则将无法通过审核。该名单可在发布新版时更新,不支持动态修改。配置方法详见 配置。调用此接口时,所跳转的 appId 必须在配置列表中,否则回调 fail appId "${appId}" is not in navigateToMiniProgramAppIdList

 

第三方平台在开发者工具上开发完成后,可点击上传,代码将上传到开放平台草稿箱中,第三方平台可选择将代码添加到模板中,获得代码模版ID后,可调用以下接口进行代码管理。

1、为授权的小程序帐号上传小程序代码

请求方式: POST(请使用https协议)

https://api.weixin.qq.com/wxa/commit?access_token=TOKEN

POST数据示例:

{
"template_id":0,
"ext_json":"JSON_STRING", //*ext_json需为string类型,请参考下面的格式*
"user_version":"V1.0",
"user_desc":"test",
}

参数说明:

参数 说明
access_token 请使用第三方平台获取到的该小程序授权的authorizer_access_token
template_id 代码库中的代码模版ID
ext_json 第三方自定义的配置
user_version 代码版本号,开发者可自定义
user_desc 代码描述,开发者可自定义

ext_json需为string类型,格式示例如下 :

{
    extAppid:"",
    ext:{
        "attr1":"value1",
        "attr2":"value2",
    },
    extPages:{
        "index":{
        },
        "search/index":{
        },
    },
    pages:["index","search/index"],
    "window":{
    },
    "networkTimeout":{
    },
    "tabBar":{
    },
}

(1)为了便于第三方平台使用同一个小程序模版为不同的小程序提供服务,第三方可以将自定义信息放置在ext_json中,在模版小程序中,可以使用接口获取自定义信息,从而区分不同的小程序。详见:小程序模版开发

(2)ext_json中的参数可选,参数详见https://mp.weixin.qq.com/debug/wxadoc/dev/framework/config.html

期中就有navigateToMiniProgramAppIdList

(3)如果代码中已经有配置,则配置的合并规则为:除了pages和tabBar.list直接覆盖原配置,其他都为插入或同级覆盖。

特殊字段说明:

参数 说明
ext 自定义字段仅允许在这里定义,可在小程序中调用
extPages 页面配置
extAppid 授权方Appid,可填入商户AppID,以区分不同商户

返回说明(正常时返回的json示例):

{
"errcode":0,
"errmsg":"ok",
}

你可能感兴趣的:(微信第三方平台代小程序管理 小程序之间互跳的实现)