启动小程序

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

接口说明

Mriver.startApp(String appid)

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

代码示例

Mriver.startApp("2021022320210223");

参数说明

名称

类型

描述

必填

appId

String

待跳转的目标小程序的 AppID。

Mriver.startApp(Activity activity,String appid)

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

代码示例

Mriver.startApp(activity,"2021022320210223");

参数说明

名称

类型

描述

必填

appId

String

待跳转的目标小程序的 AppID。

activity

Activity

启动小程序所在的 Activity。

否(推荐填写)

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

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

代码示例

Bundle bundle = new Bundle();
bundle.putString("page", "pages/index/index");//设置路径
bundle.putString("query", "name=123&pwd=456");//设置参数
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. 在客户端添加启动时跳转页面的参数信息。

    Bundle bundle = new Bundle();
    bundle.putString("query", "name=123&pwd=456");//设置参数
    Mriver.startApp(activity,"2021022320210223",bundle);
  2. 在 URL 启动传参时,传递参数的字段为 query,获取参数时,通过解析 query 字段获取。startApp 参数说明如下:

    • appId:小程序的 ID,可以从 mPaaS 控制台查看。

    • bundle:可以向 Bundle 对象传递请求参数,key="query"value="键值对"。多个参数中间用 & 隔开。

  3. 从小程序 onLaunch/onShow(options) 方法的 options 中获取参数。

    存储 app.js 时会获取客户端向小程序传递的参数,并保存到全局变量 globalData 中。使用时从 globalData 直接取值或更新值。请求头中的 tokenuser_id 等参数,从 Native 传递过来后,保存到 globalData 中,使用时直接取值。

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

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

跳转到小程序的指定页面。若不设置,则默认为配置的首页路径。

  1. 在客户端添加启动时跳转页面的参数信息。

    Bundle bundle = new Bundle();
    bundle.putString("page", "pages/index/index");//设置路径
    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 启动小程序失败。