如何在IONIC 5中通过编程方式关闭移动应用?
Ionic 5 + Angular 编程式关闭移动应用实现方案
Ionic 5 支持 Capacitor 和 Cordova 两种原生桥接方案,两种场景的实现方式分别如下:
方案1:使用 Capacitor(Ionic 官方推荐)
步骤1:安装依赖
如果还未安装@capacitor/app包,先执行安装命令:npm install @capacitor/app
安装完成后同步到原生项目:npx cap sync
步骤2:调用退出API
先在条款弹窗对应的组件中引入App模块:
import { App } from '@capacitor/app';
在拒绝按钮的点击回调中直接调用退出方法即可:
onRejectTerms() { // 不需要二次确认可直接删掉if判断 if(confirm('确认拒绝使用条款?应用将无法继续使用')) { App.exitApp(); } }
方案2:使用 Cordova
步骤1:安装退出插件
执行命令安装cordova原生退出插件:ionic cordova plugin add cordova-plugin-exit
再安装对应的Ionic Native封装包:npm install @ionic-native/exit-app
步骤2:注入依赖
在app.module.ts的providers数组中添加ExitApp提供者:
import { ExitApp } from '@ionic-native/exit-app/ngx'; @NgModule({ ... providers: [ ... ExitApp ] }) export class AppModule { }
步骤3:调用退出逻辑
在条款弹窗对应的组件中注入ExitApp,然后在拒绝回调中调用:
import { ExitApp } from '@ionic-native/exit-app/ngx'; constructor(private exitApp: ExitApp) {} onRejectTerms() { if(confirm('确认拒绝使用条款?应用将无法继续使用')) { this.exitApp.exit(); } }
注意事项
- iOS 平台没有公开的官方退出应用API,上述两种方案的退出逻辑在iOS上会执行后台挂起逻辑,符合苹果应用商店审核规则,不会导致审核被拒
- 不要在浏览器调试环境调用退出API,会抛出异常,建议加平台判断逻辑再调用:
import { Platform } from '@ionic/angular'; constructor(private platform: Platform) {} onRejectTerms() { if(this.platform.is('hybrid')) { // 仅原生APP环境执行退出逻辑 App.exitApp(); // Cordova场景替换为 this.exitApp.exit() } }
你可以把条款弹窗的触发逻辑放在
app.component.ts的ngOnInit钩子中,应用启动完成后就会触发弹窗,完全匹配你的需求场景。
内容的提问来源于stack exchange,提问作者user14665305
相关产品推荐
相关产品推荐

