diff --git a/android/app/capacitor.build.gradle b/android/app/capacitor.build.gradle index 837cd452..0929acbc 100644 --- a/android/app/capacitor.build.gradle +++ b/android/app/capacitor.build.gradle @@ -9,7 +9,7 @@ android { apply from: "../capacitor-cordova-android-plugins/cordova.variables.gradle" dependencies { - + implementation project(':capacitor-app') } diff --git a/android/app/src/main/assets/capacitor.plugins.json b/android/app/src/main/assets/capacitor.plugins.json index fe51488c..21a0521e 100644 --- a/android/app/src/main/assets/capacitor.plugins.json +++ b/android/app/src/main/assets/capacitor.plugins.json @@ -1 +1,6 @@ -[] +[ + { + "pkg": "@capacitor/app", + "classpath": "com.capacitorjs.plugins.app.AppPlugin" + } +] diff --git a/android/capacitor.settings.gradle b/android/capacitor.settings.gradle index 9a5fa872..2085c863 100644 --- a/android/capacitor.settings.gradle +++ b/android/capacitor.settings.gradle @@ -1,3 +1,6 @@ // DO NOT EDIT THIS FILE! IT IS GENERATED EACH TIME "capacitor update" IS RUN 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') diff --git a/package.json b/package.json index 36e4ccc7..ebe49ab3 100644 --- a/package.json +++ b/package.json @@ -3,6 +3,7 @@ "version": "0.1.11", "private": true, "dependencies": { + "@capacitor/app": "1.1.1", "@babel/core": "7.21.3", "@babel/plugin-syntax-flow": "7.18.6", "@babel/plugin-transform-react-jsx": "7.21.0", diff --git a/src/index.js b/src/index.js index 9b9cab20..3c1373b6 100644 --- a/src/index.js +++ b/src/index.js @@ -4,6 +4,7 @@ import App from './App'; import { HelmetProvider } from 'react-helmet-async'; import { HashRouter } from 'react-router-dom'; import * as serviceWorkerRegistration from './serviceWorkerRegistration'; +import { App as CapacitorApp } from '@capacitor/app'; import PlebbitJs from '@plebbit/plebbit-js'; // inject native functions into renderer @@ -24,4 +25,13 @@ root.render( ); // set up PWA https://cra.link/PWA -serviceWorkerRegistration.register(); \ No newline at end of file +serviceWorkerRegistration.register(); + +// add back button in android app +CapacitorApp.addListener('backButton', ({canGoBack}) => { + if (canGoBack) { + window.history.back(); + } else { + CapacitorApp.exitApp(); + } +}); diff --git a/yarn.lock b/yarn.lock index 15cadb0b..92299548 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1229,6 +1229,11 @@ resolved "https://registry.yarnpkg.com/@capacitor/android/-/android-3.6.0.tgz#60438a0614415c7c242dda48a031cd45335e067a" integrity sha512-X6n0OLy7BE3c6qfVuL7UYyq/aIwEsqIAqtyDOwMdj5k+P1rLQVsGaWERXUtC0BGeoKBD5YgbWiyKwAwg5Spjdg== +"@capacitor/app@1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@capacitor/app/-/app-1.1.1.tgz#bde7202faad1b47c4ae2c4a622285d7569384c5e" + integrity sha512-8ADkldHnoE1xkWvPUsGlERVGm6/Zvcxy6hCI80AxydIKyaCG7kbDAvUclebbnw/eFRxj2zBoVatGLjmJNvTbYw== + "@capacitor/cli@3.6.0": version "3.6.0" resolved "https://registry.yarnpkg.com/@capacitor/cli/-/cli-3.6.0.tgz#31c07f364828e750d20a8e6bb2d516f0d21be81d"