请移步 新的文档。此文档以停止更新
启动小程序
宿主应用启动小程序时可实现如下功能
- 支持传入参数到小程序环境,
- 支持启动后直接打开指定页面
注:暂不支持同时运行多个小程序,可以关闭A小程序后在打开B小程序
下面讲解一下具体实现
UniMPSDK 各端 API 说明
iOS 平台
Class DCUniMPSDKEngine
/// 启动小程序
+ (void)openApp:(NSString *)appid
arguments:(NSDictionary * _Nullable)arguments
redirectPath:(NSString * _Nullable)redirectPath;
参数 |
类型 |
说明 |
appid |
NSString |
小程序的 appid |
arguments |
NSDictionary |
启动小程序传入的参数 |
redirectPath |
NSString |
指定启动应用后直接打开的页面路径 |
Android 平台
// 启动小程序
DCUniMPSDK.getInstance().startApp(context, appid, splashClass, redirectPath, arguments)
参数 |
类型 |
必填 |
说明 |
context |
Context |
是 |
上下文 |
appid |
String |
是 |
小程序的 appid |
splashClass |
IDCUniMPAppSplashView |
否 |
自定义splashView接口类 |
redirectPath |
String |
否 |
指定启动应用后直接打开的页面路径 |
arguments |
JSONObject |
否 |
启动小程序传入的参数 |
Tips
Android startApp详细说明可参考uni小程序SDK API参考手册
启动小程序并传参
宿主启动小程序时支持传入参数到小程序环境,小程序中可以通过 plus.runtime.arguments
获取宿主传入的参数
iOS 示例
// 启动小程序并传入参数
NSDictionary *arguments = @{@"value":@"Hello uni microprogram"};
[DCUniMPSDKEngine openApp:appid arguments:arguments];
Android 示例
// 启动小程序并传入参数 "Hello uni microprogram"
try {
JSONObject arguments = new JSONObject();
arguments.put("MSG","Hello uni microprogram");
DCUniMPSDK.getInstance().startApp(context, "__UNI__04E3A11", arguments);
} catch (Exception e) {
e.printStackTrace();
}
小程序中获取参数
var info = plus.runtime.arguments;
启动小程序打开指定页面
宿主启动小程序时可通过传入页面路径来打开指定页面
页面路径格式要求
路径从 pages/ 开始填写绝对路径并支持参数 示例:
pages/component/view/view?action=redirect
iOS 示例
// 启动直达页面
NSString *pagePath = @"pages/component/view/view?action=redirect";
[DCUniMPSDKEngine openApp:k_AppId arguments:nil redirectPath:pagePaht];
Android 示例
// 启动直达页面
DCUniMPSDK.getInstance().startApp(context,"__UNI__04E3A11", "pages/component/view/view?action=redirect");
屏蔽返回
直达二级页面如果您想屏蔽返回按钮及返回手势,可以在 小程序页面的 onLoad()
方法中通过调用 setStyle()
方法实现,代码如下
<script>
export default {
onLoad(e) {
// #ifdef APP-PLUS
// 启动直达二级页面屏蔽返回手势及返回按钮
// e 为直达页面时传入的参数 jsonObject 类型
if (e.action === "redirect") {
const currentWebview = this.$scope.$getAppWebview();
currentWebview.setStyle({
popGesture: 'none',
titleNView: {
autoBackButton: false
}
})
}
// #endif
}
}
</script>