Angular Ionic 4应用程序启动器启动最新的应用程序,而不是我的应用程序

Angular Ionic 4应用程序启动器启动最新的应用程序,而不是我的应用程序,angular,cordova,ionic-framework,Angular,Cordova,Ionic Framework,我正在尝试在注册握手手势时启动自己的应用程序。 我正在使用cordova背景模式、cordova shake和cordova应用程序启动器 在后台方法中调用shake方法,在shake方法中调用app启动器 问题是该代码与另一个应用程序包id(即com.facebook.katana)完美配合 但是,当我解析我的应用程序包名时,它不起作用,而是手机启动任务列表中最新的应用程序 是否有其他人遇到此问题并解决了它,或者有人可以查看我的代码并告诉我是否有问题 startBackgroundMode()

我正在尝试在注册握手手势时启动自己的应用程序。 我正在使用cordova背景模式、cordova shake和cordova应用程序启动器

在后台方法中调用shake方法,在shake方法中调用app启动器

问题是该代码与另一个应用程序包id(即com.facebook.katana)完美配合

但是,当我解析我的应用程序包名时,它不起作用,而是手机启动任务列表中最新的应用程序

是否有其他人遇到此问题并解决了它,或者有人可以查看我的代码并告诉我是否有问题

startBackgroundMode(){          

    this.backgroundMode.enable();
    this.backgroundMode.overrideBackButton();           

    this.backgroundMode.on('activate').subscribe(value => { 
      this.backgroundMode.disableWebViewOptimizations(); 
         this.platform.resume;
        this.shakePhone();   
    });
}
shakePhone(){
  this.shake.startWatch().subscribe(() => {
    console.log(`watching...`);   

    //this.backgroundMode.moveToForeground();               
    this.openApp();
    });

}
  openApp(){  

    const options: AppLauncherOptions = {
    }
    options.packageName = 'my apps package name that I got from the config.xml'


  this.appLauncher.canLaunch(options).then((launch)=>{
    if(launch){
      this.appLauncher.launch(options).then((launcher)=>{
        console.dir(launcher);
      }),(err)=>{
        console.log(JSON.stringify(err));
      };
    }
    else{
      console.log("can't open app!");
    }
  }).catch((e)=>{
    console.log(e);
  });

  }
后台模式在app.component.ts文件的构造函数方法中调用

编辑 所以我一直在玩这个应用程序,试图了解发生了什么。
如果我在后台关闭我的应用程序,然后打开另一个应用程序,如memo和我最小化该应用程序,然后晃动手机,则该应用程序打开,但如果我再次按下该应用程序上的后退按钮并再次晃动手机,则我的应用程序打开,我不明白为什么会这样做?

您是否尝试过卸载该应用程序,然后重新安装?是的,几次您可以在其他设备/仿真器中尝试吗?或者甚至可以从config和check中更改应用程序id。我已经做了更多的测试,逻辑工作正常,但是如果你打开一个应用程序,例如备忘录、计算器或其他任何东西。然后你点击Back按钮,摇动手机将打开我的应用程序,但是如果你点击另一个应用程序上的home按钮,它会将你带到主页,然后摇动手机,则任务列表中的最后一个应用程序将打开