# Android 拉起小程序开发示例

本文介绍如何在 Android 移动应用中实现拉起小程序功能。

## 1、多端应用开发指南

为降低开发者构建移动应用的开发成本，平台推出基于小程序技术实现的多端框架，基于该多端框架可低成本开发 Android 和 iOS 应用，详情可查看 [多端框架概述](/miniprogram/dev/platform-capabilities/miniapp/intro/intro.md)。如果你的 App 是通过官方多端框架开发的，可调用如下 JSAPI 即可在 App 中实现拉起小程序功能：

- [wx.miniapp.launchMiniProgram](/miniprogram/dev/platform-capabilities/miniapp/api/miniapp/launchMiniProgram.md)

## 2、非多端应用开发指南

如果你的 App 不是通过多端框架开发的，可按照下方的指南在 App 中集成微信 SDK 后，调用接口实现拉起小程序功能。开发前需下载 Android 开发工具包（SDK），可 [前往下载](/doc/oplatform/Mobile_App/Downloads/Android_Resource)。

**调用接口：** `WXLaunchMiniProgram`

**移动应用跳转到小程序示例：**

```java
String appId = "wxd930ea5d5a258f4f"; // 填移动应用（App）的 AppId，非小程序的 AppID
IWXAPI api = WXAPIFactory.createWXAPI(context, appId);

WXLaunchMiniProgram.Req req = new WXLaunchMiniProgram.Req();
req.userName = "gh_d43f693ca31f"; // 填小程序原始 id
req.path = path;                  // 拉起小程序页面的可带参路径，不填默认拉起小程序首页
                                  // 对于小游戏，可以只传入 query 部分，来实现传参效果，如：传入 "?foo=bar"
req.miniprogramType = WXLaunchMiniProgram.Req.MINIPTOGRAM_TYPE_RELEASE; // 可选打开开发版、体验版和正式版
api.sendReq(req);
```

**回调说明**

在 `WXEntryActivity` 中：

```java
public void onResp(BaseResp resp) {
    if (resp.getType() == ConstantsAPI.COMMAND_LAUNCH_WX_MINIPROGRAM) {
        WXLaunchMiniProgram.Resp launchMiniProResp = (WXLaunchMiniProgram.Resp) resp;
        String extraData = launchMiniProResp.extMsg; // 对应小程序组件 <button open-type="launchApp"> 中的 app-parameter 属性
    }
}
```

小程序跳转回移动应用请参考 [《小程序开发文档》](/miniprogram/dev/framework/open-ability/launchApp.md)。
