阿里云首页 移动开发平台 mPaaS

启动小程序

本文介绍了启动小程序的相关接口,并通过示例演示如何启动小程序。

接口说明

Mriver.startApp(String appid)

该接口用于跳转到小程序。

代码示例

  1. Mriver.startApp("2021022320210223");

参数说明

名称 类型 描述 必填
appId String待跳转的目标小程序的 AppID。

Mriver.startApp(Activity activity,String appid)

该接口用于跳转到小程序,推荐跳转到启动小程序所在页面的 Activity。

代码示例

  1. Mriver.startApp(activity"2021022320210223");

参数说明

名称 类型 描述 必填
appId String待跳转的目标小程序的 AppID。
activity Activity启动小程序所在的 Activity。 否(推荐填写)

Mriver.startApp(Activity activity,String appid,Bundle bundle)

该接口用于跳转到小程序,推荐跳转到启动小程序所在页面的 Activity。

代码示例

  1. Bundle bundle = new Bundle();
  2. bundle.putString("page", "pages/index/index");//设置路径
  3. bundle.putString("query", "name=123&pwd=456");//设置参数
  4. Mriver.startApp(activity"2021022320210223"bundle);

参数说明

名称 类型 描述 必填
appId String待跳转的目标小程序的 AppID。
activity Activity启动小程序所在的 Activity。 否(推荐填写)
bundle Bundle启动小程序参数。

启动小程序

启动小程序并传递自定义参数

Mriver.startApp(Activity activity,String appid,Bundle bundle)
在部分场景下,需要向小程序的默认接收页 (pages/index/index) 传递参数。本文以传递 namepwd 参数为例,介绍了此场景的实现过程。

  1. 在客户端添加启动时跳转页面的参数信息。
    1. Bundle bundle = new Bundle();
    2. bundle.putString("query", "name=123&pwd=456");//设置参数
    3. Mriver.startApp(activity"2021022320210223"bundle);
  2. 在 URL 启动传参时,传递参数的字段为 query,获取参数时,通过解析 query 字段获取。startApp 参数说明如下:
    • appId:小程序的 ID,可以从 mPaaS 控制台查看。
    • bundle:可以向 Bundle 对象传递请求参数,key="query"value="键值对"。多个参数中间用 & 隔开。
  3. 从小程序 onLaunch/onShow(options) 方法的 options 中获取参数。
    11
    存储 app.js 时会获取客户端向小程序传递的参数,并保存到全局变量 globalData 中。使用时从 globalData 直接取值或更新值。请求头中的 tokenuser_id 等参数,从 Native 传递过来后,保存到 globalData 中,使用时直接取值。
    12

启动小程序并跳转到指定页面

Mriver.startApp(Activity activity,String appid,Bundle bundle)
跳转到小程序的指定页面。若不设置,则默认为配置的首页路径。

  1. 在客户端添加启动时跳转页面的参数信息。
    1. Bundle bundle = new Bundle();
    2. bundle.putString("page", "pages/index/index");//设置路径
    3. Mriver.startApp(activity"2021022320210223"bundle);
  2. URL 启动传参时,传递参数的字段为 query。获取参数时,通过解析 query 字段获取。startApp 参数说明如下:
    • activity:启动小程序所在的 Activity 页面
    • appId:小程序的 ID,可以从 mPaaS 控制台查看。
    • bundle:Bundle 对象,可以向 Bundle 对象传递请求参数,key="page"value="要打开的小程序路径"

常见问题

Q:启动小程序传递 Activity 的作用是什么?
A:不传递 Activity 对象时,容器内部使用 ApplicationLifecycle,用弱引用记录 Activity。当内存不足时弱引用会被 JVM 回收,Activity 对象为 null,造成容器内部 activity.startActivity 启动小程序失败。