diff --git a/packages/app/android/app/capacitor.build.gradle b/packages/app/android/app/capacitor.build.gradle index a1310b73..638b0f00 100644 --- a/packages/app/android/app/capacitor.build.gradle +++ b/packages/app/android/app/capacitor.build.gradle @@ -9,6 +9,7 @@ android { apply from: "../capacitor-cordova-android-plugins/cordova.variables.gradle" dependencies { + implementation project(':capacitor-app') implementation project(':capacitor-haptics') implementation project(':capacitor-push-notifications') implementation project(':capacitor-status-bar') diff --git a/packages/app/android/capacitor.settings.gradle b/packages/app/android/capacitor.settings.gradle index 64b1029e..919a9ef8 100644 --- a/packages/app/android/capacitor.settings.gradle +++ b/packages/app/android/capacitor.settings.gradle @@ -2,6 +2,9 @@ include ':capacitor-android' project(':capacitor-android').projectDir = new File('../../../node_modules/@capacitor/android/capacitor') +include ':capacitor-app' +project(':capacitor-app').projectDir = new File('../../../node_modules/@capacitor/app/android') + include ':capacitor-haptics' project(':capacitor-haptics').projectDir = new File('../../../node_modules/@capacitor/haptics/android') diff --git a/packages/app/ios/App/Podfile b/packages/app/ios/App/Podfile index bc649f2f..29d575ba 100644 --- a/packages/app/ios/App/Podfile +++ b/packages/app/ios/App/Podfile @@ -11,6 +11,7 @@ install! 'cocoapods', :disable_input_output_paths => true def capacitor_pods pod 'Capacitor', :path => '../../../../node_modules/@capacitor/ios' pod 'CapacitorCordova', :path => '../../../../node_modules/@capacitor/ios' + pod 'CapacitorApp', :path => '../../../../node_modules/@capacitor/app' pod 'CapacitorHaptics', :path => '../../../../node_modules/@capacitor/haptics' pod 'CapacitorPushNotifications', :path => '../../../../node_modules/@capacitor/push-notifications' pod 'CapacitorStatusBar', :path => '../../../../node_modules/@capacitor/status-bar' diff --git a/packages/app/package.json b/packages/app/package.json index caaab578..14423f06 100755 --- a/packages/app/package.json +++ b/packages/app/package.json @@ -24,6 +24,7 @@ "dependencies": { "@ant-design/icons": "4.7.0", "@capacitor/android": "^4.5.0", + "@capacitor/app": "^4.1.1", "@capacitor/cli": "^4.5.0", "@capacitor/core": "^4.5.0", "@capacitor/haptics": "1.1.4", diff --git a/packages/app/src/App.jsx b/packages/app/src/App.jsx index 6e91630c..f5af5326 100755 --- a/packages/app/src/App.jsx +++ b/packages/app/src/App.jsx @@ -54,6 +54,7 @@ import { Helmet } from "react-helmet" import * as antd from "antd" import { Toast } from "antd-mobile" import { StatusBar, Style } from "@capacitor/status-bar" +import { App as CapacitorApp } from "@capacitor/app" import { Translation } from "react-i18next" import { Session, User } from "models" @@ -316,7 +317,7 @@ class App extends React.Component { escClosable: true, }) } - + return window.app.ModalController.open((props) => ) }, openSettings: (goTo) => { @@ -419,6 +420,14 @@ class App extends React.Component { StatusBar.setOverlaysWebView({ overlay: true }) //window.app.hideStatusBar() + + CapacitorApp.addListener('backButton', ({ canGoBack }) => { + if (!canGoBack) { + CapacitorApp.exitApp(); + } else { + window.history.back(); + } + }); } const userAgentPlatform = window.navigator.userAgent.toLowerCase()