本文介绍了启动小程序的相关接口,并通过示例演示如何启动小程序。
接口说明
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)
传递参数。本文以传递 name
和 pwd
参数为例,介绍了此场景的实现过程。
在客户端添加启动时跳转页面的参数信息。
Bundle bundle = new Bundle(); bundle.putString("query", "name=123&pwd=456");//设置参数 Mriver.startApp(activity,"2021022320210223",bundle);
在 URL 启动传参时,传递参数的字段为
query
,获取参数时,通过解析query
字段获取。startApp
参数说明如下:appId:小程序的 ID,可以从 mPaaS 控制台查看。
bundle:可以向
Bundle
对象传递请求参数,key="query"
,value="键值对"
。多个参数中间用&
隔开。
从小程序
onLaunch/onShow(options)
方法的options
中获取参数。存储
app.js
时会获取客户端向小程序传递的参数,并保存到全局变量globalData
中。使用时从globalData
直接取值或更新值。请求头中的token
、user_id
等参数,从Native
传递过来后,保存到globalData
中,使用时直接取值。
启动小程序并跳转到指定页面
Mriver.startApp(Activity activity,String appid,Bundle bundle)
跳转到小程序的指定页面。若不设置,则默认为配置的首页路径。
在客户端添加启动时跳转页面的参数信息。
Bundle bundle = new Bundle(); bundle.putString("page", "pages/index/index");//设置路径 Mriver.startApp(activity,"2021022320210223",bundle);
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
启动小程序失败。