提交 0254e9c6 编写于 作者: F fancy

门户打开 api,增加门户参数

上级 3b47f4c8
......@@ -181,12 +181,14 @@ class JsUtilOpenInnerAppMessage {
String? portalFlag; // 门户标识
String? portalTitle; // 门户标题
String? portalPage; // 门户页面 id
Map<String, dynamic>? parameters; // 其他参数 比如 : portalParameters 门户参数
JsUtilOpenInnerAppMessage.fromJson(Map<String, dynamic> jsonMap) {
appKey = jsonMap['appKey'];
appDisplayName = jsonMap['appDisplayName'];
portalFlag = jsonMap['portalFlag'];
portalTitle = jsonMap['portalTitle'];
portalPage = jsonMap['portalPage'];
parameters = jsonMap['parameters'];
}
}
......
......@@ -768,6 +768,7 @@ class O2JavascriptHandler {
final portalFlag = message.portalFlag;
final portalTitle = message.portalTitle;
final portalPage = message.portalPage;
final parameters = message.parameters ?? {};
if (appKey?.isNotEmpty == true) {
// 门户处理
if (appKey == 'portal') {
......@@ -776,8 +777,9 @@ class O2JavascriptHandler {
OLogger.e('门户没有传入参数 portalFlag');
return;
}
final portalParameters = parameters['portalParameters'];
PortalPage.open(portalFlag!,
title: portalTitle ?? '', pageId: portalPage);
title: portalTitle ?? '', pageId: portalPage, portalParameters: portalParameters);
} else if (appKey == 'startProcess') { //启动流程
await _startProcess();
} else {
......
......@@ -533,12 +533,15 @@ class O2ApiManager {
///
/// 门户应用地址
///
String? getPortalUrl(String portalId, {String? pageId}) {
String? getPortalUrl(String portalId, {String? pageId, String? portalParameters}) {
final web = webBaseUrl();
if (web != null) {
String url = "$web/x_desktop/portalmobile.html?id=$portalId";
if (pageId?.isNotEmpty == true) {
url = "$web/x_desktop/portalmobile.html?id=$portalId&page=$pageId";
url += "&page=$pageId";
}
if (portalParameters?.isNotEmpty == true) {
url += "&parameters=$portalParameters";
}
final isDebugger = SharedPreferenceService.to.getBool(SharedPreferenceService.webviewDebuggerKey);
if (isDebugger) {
......
......@@ -64,10 +64,11 @@ class PortalController extends GetxController implements JsNavigationInterface {
state.hiddenAppBar = false;
state.title = map["title"] ?? "app_type_portal".tr;
String id = map["portalId"] ?? "";
String pageId = map["pageId"] ?? "";
OLogger.i("门户id: $id pageId:$pageId ");
String? pageId = map["pageId"];
String? portalParameters = map["portalParameters"];
OLogger.i("门户id: $id pageId:$pageId portalParameters: $portalParameters");
if (id.isNotEmpty) {
_initPortalUrl(id, pageId: pageId.isNotEmpty ? pageId : null);
_initPortalUrl(id, pageId: pageId, portalParameters: portalParameters);
} else {
Loading.showError('args_error'.tr);
Get.back();
......@@ -131,8 +132,8 @@ class PortalController extends GetxController implements JsNavigationInterface {
OLogger.d('执行了页面刷新 reload');
}
void _initPortalUrl(String id, {String? pageId}) async {
var url = O2ApiManager.instance.getPortalUrl(id, pageId: pageId) ?? "";
void _initPortalUrl(String id, {String? pageId, String? portalParameters}) async {
var url = O2ApiManager.instance.getPortalUrl(id, pageId: pageId, portalParameters: portalParameters) ?? "";
if (url.isNotEmpty) {
final uurl = Uri.parse(url);
var host = O2ApiManager.instance.getWebHost();
......
......@@ -13,10 +13,10 @@ class PortalPage extends GetView<PortalController> {
const PortalPage({Key? key, required this.tag}) : super(key: key);
static void open(String portalId, {String title = '', String? pageId}) async {
static void open(String portalId, {String title = '', String? pageId, String? portalParameters}) async {
Get.lazyPut<PortalController>(() => PortalController(), tag: portalId);
await Get.to(PortalPage(tag: portalId),
arguments: {"portalId": portalId, "title": title, "pageId": pageId},
arguments: {"portalId": portalId, "title": title, "pageId": pageId, "portalParameters": portalParameters},
preventDuplicates: false);
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册