管理微应用与服务

将业务分割为微应用和服务后,不仅实现了不同模块之间的低耦合、高内聚,同时可以通过 mPaaS iOS 框架提供的框架上下文,进行微应用与服务的管理,包括微应用与微应用、服务与服务、微应用与服务之间的跳转和数据传递等。

管理微应用

框架上下文通过堆栈对所有微应用的跳转进行统一管理,遵循如下规则:

application

  • 基于 mPaaS iOS 框架,可以根据微应用的 name,快速查找到此微应用,并在当前微应用中启动另一个微应用:

    1. - (void)pushSubApp2
    2. {
    3. [DTContextGet() startApplication:@"20000002" params:@{} launchMode:kDTMicroApplicationLaunchModePushWithAnimation];
    4. }
  • 微应用堆栈中上层的微应用,可以快速跳转到堆栈底部的根应用:

    1. - (void)exitToLauncher
    2. {
    3. // 因为 Launcher 在下层,所以再启动 Launcher 实际是退出上层所有的 App,回到 Launcher
    4. [DTContextGet() startApplication:@"Launcher" params:nil animated:kDTMicroApplicationLaunchModePushNoAnimation];
    5. }
  • 快速退出当前微应用;

    1. - (void)exitSelf
    2. {
    3. [[DTContextGet() currentApplication] exitAnimated:YES];
    4. }
  • 快速退出已启动的应用:

    1. - (void)exitApp2
    2. {
    3. // 当前顶层应用是 app3,但是可以强行把 app2 和它的窗口都退出。
    4. [[DTContextGet() findApplicationByName:@"20000002"] forceExit];
    5. }

管理服务

基于 mPaaS iOS 框架,可以快速在当前微应用中启动另一个服务。

  1. - (void)findService
  2. {
  3. id<DemoService> service = [DTContextGet() findServiceByName:@"DemoService"];
  4. [service doTask];
  5. }