# 打开小程序 
从飞书 3.8.0 版本开始支持。
## 使用场景
打开一个小程序或者小程序中的一个页面

## 协议
`https://applink.feishu.cn/client/mini_program/open`

## 参数 
每一个参数都应当编码。
| 字段         | 必填           | 说明        | 
| --------- | --------------- | -------   | 
|**appId** |    是      | 小程序 appId(可从「开发者后台-凭证与基础信息」获取) | 
|**mode** | PC 建议填写 | PC小程序启动模式，枚举值包括：<br>`sidebar-semi`：聊天的侧边栏打开<br>`appCenter`：在工作台打开；7.0版本起，工作台应用会在飞书导航栏的标签页中打开。<br>`window`：独立大窗口打开<br>`window-semi`：独立小窗口打开，飞书3.33版本开始支持此模式 <br><br>未填写的情况下，默认会优先使用`sidebar-semi`打开，不支持`sidebar-semi`模式的情况下会使用`window-semi`模式打开| 
|**height** | 否 | 自定义独立窗口高度（仅当`mode`为`window`时生效），飞书5.12版本开始支持<br>**最小值**：480<br>**最大值**：屏幕的高度<br>**默认值**：飞书窗口的高度 | 
|**width** | 否 | 自定义独立窗口宽度（仅当`mode`为`window`时生效），飞书5.12版本开始支持<br>**最小值**：640<br>**最大值**：屏幕的宽度<br>**默认值**：飞书窗口的宽度 | 
|**relaunch** | 否 | 是否重新加载指定页面。该参数仅当applink中传入path参数时才会生效。枚举值包括：<br>`false`：与[小程序打开逻辑](https://open.feishu.cn/document/uYjL24iN/uMjNzUjLzYzM14yM2MTN#c2bcfa33)一致。如果用户已打开相同path的页面与参数，则保持页面原先状态，不会重新加载；其他情况下会清空原来的页面栈，打开指定页<br>`true`：无论用户是否打开相同path的页面与参数，一定会清空原来的页面栈，打开指定页（与[relaunch](https://open.feishu.cn/document/uYjL24iN/uEDM04SMwQjLxADN)的逻辑一致）<BR>**飞书5.9版本开始支持该参数，默认值为`false`**| 
|**path** | 否 | 需要跳转的页面路径，路径后可以带参数。也可以使用 path_android、path_ios、path_pc 参数对不同的客户端指定不同的path | 
|**path_android** | 否 | 同 path 参数，Android 端会优先使用该参数，如果该参数不存在，则会使用 path 参数 | 
|**path_ios** | 否 | 同 path 参数，iOS 端会优先使用该参数，如果该参数不存在，则会使用 path 参数 | 
|**path_pc** | 否 | 同 path 参数，PC 端会优先使用该参数，如果该参数不存在，则会使用 path 参数 |  | 
|**min_lk_ver** | 否         | 指定 AppLink 协议能够兼容的最小飞书版本，使用三位版本号 x.y.z。如果当前飞书版本号小于min_lk_ver，打开该 AppLink 会显示为兼容页面 |  
也可使用 min_lk_ver_android、min_lk_ver_ios、min_lk_ver_pc 参数对不同的客户端指定不同的版本。 

`path` 参数值可以携带 Query 参数。比如：
```js
path=pages%2Findex%3Ffoo%3Dbar
// 上述值decode以后是 pages/index?foo=bar
```
通过 [App.onLaunch](https://open.feishu.cn/document/uYjL24iN/uMDNuMDNuMDN) 或者 [tt.getLaunchOptionsSync](https://open.feishu.cn/document/uYjL24iN/uAzM1YjLwMTN24CMzUjN) 即可取得：
```json
{
	"path": "pages/index",
    "query": {
    	"foo": "bar" // 启动小程序时传入的path参数值中携带的query参数
    },
    "scene": "1000", // 场景值
    "subScene": "",
    "group_id": ""
}
```

## 使用示例
#### 1. 打开小程序                                            
`https://applink.feishu.cn/client/mini_program/open?appId=1234567890&mode=window`
#### 2. 打开小程序的一个页面 pages/home                                     
`https://applink.feishu.cn/client/mini_program/open?appId=1234567890&mode=window&path=pages%2fhome`

#### 3. 打开小程序的一个页面带参数 pages/home?xid=123
`https://applink.feishu.cn/client/mini_program/open?appId=1234567890&mode=window&path=pages%2fhome%3fxid%3d123`

#### 4. 在 PC 端打开页面 pages/pc_home?pid=123，在其他端打开页面 pages/home?xid=123
`https://applink.feishu.cn/client/mini_program/open?appId=1234567890&mode=window&path=pages%2fhome%3fxid%3d123&path_pc=pages%2fpc_home%3fpid%3d123`

#### 5. 在 PC 4.2.0 及以上版本支持打开小程序，PC 4.2.0 以下版本提示不支持
`https://applink.feishu.cn/client/mini_program/open?appId=1234567890&mode=window&min_lk_ver_pc=4.2.0`
