diff --git a/ios/App/App/plugins/AbsAudioPlayer.swift b/ios/App/App/plugins/AbsAudioPlayer.swift index 965c1306..d7f00e28 100644 --- a/ios/App/App/plugins/AbsAudioPlayer.swift +++ b/ios/App/App/plugins/AbsAudioPlayer.swift @@ -23,8 +23,9 @@ public class AbsAudioPlayer: CAPPlugin { NotificationCenter.default.addObserver(self, selector: #selector(onPlaybackFailed), name: NSNotification.Name(PlayerEvents.failed.rawValue), object: nil) self.bridge?.webView?.allowsBackForwardNavigationGestures = true; + } - + @objc func prepareLibraryItem(_ call: CAPPluginCall) { let libraryItemId = call.getString("libraryItemId") let episodeId = call.getString("episodeId") diff --git a/ios/App/Podfile b/ios/App/Podfile index 89125e80..dcdae730 100644 --- a/ios/App/Podfile +++ b/ios/App/Podfile @@ -9,12 +9,12 @@ 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 'CapacitorDialog', :path => '..\..\node_modules\@capacitor\dialog' - pod 'CapacitorHaptics', :path => '..\..\node_modules\@capacitor\haptics' - pod 'CapacitorNetwork', :path => '..\..\node_modules\@capacitor\network' - pod 'CapacitorStatusBar', :path => '..\..\node_modules\@capacitor\status-bar' - pod 'CapacitorStorage', :path => '..\..\node_modules\@capacitor\storage' + pod 'CapacitorApp', :path => '../../node_modules/@capacitor/app' + pod 'CapacitorDialog', :path => '../../node_modules/@capacitor/dialog' + pod 'CapacitorHaptics', :path => '../../node_modules/@capacitor/haptics' + pod 'CapacitorNetwork', :path => '../../node_modules/@capacitor/network' + pod 'CapacitorStatusBar', :path => '../../node_modules/@capacitor/status-bar' + pod 'CapacitorStorage', :path => '../../node_modules/@capacitor/storage' end target 'App' do diff --git a/plugins/init.client.js b/plugins/init.client.js index 20afe4f1..c540d14f 100644 --- a/plugins/init.client.js +++ b/plugins/init.client.js @@ -120,7 +120,22 @@ Vue.prototype.$encode = encode const decode = (text) => Buffer.from(decodeURIComponent(text), 'base64').toString() Vue.prototype.$decode = decode -export default ({ store }) => { +export default ({ store, app }) => { + // iOS Only + // backButton event does not work with iOS swipe navigation so use this workaround + if (app.router && Capacitor.getPlatform() === 'ios') { + app.router.beforeEach((to, from, next) => { + if (store.state.globals.isModalOpen) { + Vue.prototype.$eventBus.$emit('close-modal') + } + if (store.state.playerIsFullscreen) { + Vue.prototype.$eventBus.$emit('minimize-player') + } + next() + }) + } + + // Android only App.addListener('backButton', async ({ canGoBack }) => { if (store.state.globals.isModalOpen) { Vue.prototype.$eventBus.$emit('close-modal')