# wx.onAppShow(function listener)

> 基础库 2.1.2 开始支持，低版本需做[兼容处理](1003706)。

> __小程序插件__：不支持
> 
> __微信 鸿蒙 OS 版__：支持

## 功能描述

监听小程序切前台事件。该事件与 [`App.onShow`](/miniprogram/dev/framework/app-service/app.md#onshowobject-object) 的回调参数一致。

## 参数

### function listener

小程序切前台事件的监听函数

#### 参数

##### Object options

启动参数


```json
[
  {
    "属性": "path",
    "类型": "string",
    "说明": "启动小程序的路径 (代码包路径)",
    "最低版本": ""
  },
  {
    "属性": "scene",
    "类型": "number",
    "说明": "启动小程序的[场景值](/miniprogram/dev/framework/app-service/scene.md)",
    "最低版本": ""
  },
  {
    "属性": "query",
    "类型": "Record.<string, string>",
    "说明": "启动小程序的 query 参数",
    "最低版本": ""
  },
  {
    "属性": "shareTicket",
    "类型": "string",
    "说明": "shareTicket，详见[获取更多转发信息](/miniprogram/dev/framework/open-ability/share.md#获取更多转发信息)",
    "最低版本": ""
  },
  {
    "属性": "referrerInfo",
    "类型": "Object",
    "说明": "来源信息。从另一个小程序、公众号或 App 进入小程序时返回。否则返回 \u0000INLINECODE_1\u0000。(参见后文注意)",
    "最低版本": "",
    "子项": [
      {
        "结构属性": "appId",
        "类型": "string",
        "说明": "来源小程序、公众号或 App 的 appId"
      },
      {
        "结构属性": "extraData",
        "类型": "Object",
        "说明": "来源小程序传过来的数据，scene=1037或1038时支持"
      }
    ]
  },
  {
    "属性": "forwardMaterials",
    "类型": "Array.<Object>",
    "说明": "打开的文件信息数组，只有从聊天素材场景打开（scene为1173）才会携带该参数",
    "最低版本": "",
    "子项": [
      {
        "结构属性": "type",
        "类型": "string",
        "说明": "文件的mimetype类型"
      },
      {
        "结构属性": "name",
        "类型": "string",
        "说明": "文件名"
      },
      {
        "结构属性": "path",
        "类型": "string",
        "说明": "文件路径（如果是webview则是url）"
      },
      {
        "结构属性": "size",
        "类型": "number",
        "说明": "文件大小"
      }
    ]
  },
  {
    "属性": "chatType",
    "类型": "number",
    "说明": "从微信群聊/单聊打开小程序时，chatType 表示具体微信群聊/单聊类型",
    "最低版本": "",
    "子项": [
      {
        "合法值": "1",
        "说明": "微信联系人单聊"
      },
      {
        "合法值": "2",
        "说明": "企业微信联系人单聊"
      },
      {
        "合法值": "3",
        "说明": "普通微信群聊"
      },
      {
        "合法值": "4",
        "说明": "企业微信互通群聊"
      }
    ]
  },
  {
    "属性": "hostExtraData",
    "类型": "Object",
    "说明": "宿主传递的数据，第三方 app 中运行小程序时返回",
    "最低版本": "",
    "子项": [
      {
        "结构属性": "host_scene",
        "类型": "string",
        "说明": "宿主app对应的场景值"
      }
    ]
  },
  {
    "属性": "apiCategory",
    "类型": "string",
    "说明": "API 类别",
    "最低版本": "[2.20.0](1003706)",
    "子项": [
      {
        "合法值": "default",
        "说明": "默认类别"
      },
      {
        "合法值": "nativeFunctionalized",
        "说明": "原生功能化，视频号直播商品、商品橱窗等场景打开的小程序"
      },
      {
        "合法值": "browseOnly",
        "说明": "仅浏览，朋友圈快照页等场景打开的小程序"
      },
      {
        "合法值": "embedded",
        "说明": "内嵌，通过打开半屏小程序能力打开的小程序"
      },
      {
        "合法值": "chatTool",
        "说明": "聊天工具，通过打开聊天工具能力打开的小程序"
      }
    ]
  }
]
```

## 返回有效 referrerInfo 的场景

| 场景值 | 场景                            | appId含义  |
| ------ | ------------------------------- | ---------- |
| 1020   | 公众号 profile 页相关小程序列表 | 来源公众号 |
| 1035   | 公众号自定义菜单                | 来源公众号 |
| 1036   | App 分享消息卡片                | 来源App    |
| 1037   | 小程序打开小程序                | 来源小程序 |
| 1038   | 从另一个小程序返回              | 来源小程序 |
| 1043   | 公众号模板消息                  | 来源公众号 |

## 不同 apiCategory 场景下的 API 限制

`X` 表示 API 被限制无法使用；不在表格中的 API 不限制。

|                                       | default | nativeFunctionalized | browseOnly | embedded | chatTool |
|-|-|-|-|-|--|
|openSetting                            |         |                      | `X`        |          |      |
|<button open-type="share">       |         | `X`                  | `X`        | `X`      |  `X` |
|<button open-type="feedback">    |         |                      | `X`        |          |      |
|<button open-type="open-setting">|         |                      | `X`        |          |      |
|navigateToMiniProgram                  |         | `X`                  | `X`        |          |  `X` |
|openEmbeddedMiniProgram                |         | `X`                  | `X`        | `X`      |  `X` |
|openOfficialAccountArticle             |         |                      |            |          |  `X` |
|openChannelsUserProfile                |         |                      |            |          |  `X` |
|ad                                     |         |                      |            |          |  `X` |
|ad-custom                              |         |                      |            |          |  `X` |
|小程序菜单分享                            |         |                      |            |          |  `X` |

## 注意

部分版本在无`referrerInfo`的时候会返回 `undefined`，建议使用 `options.referrerInfo && options.referrerInfo.appId` 进行判断。
