Quasar + Phaser: problems in fullscreen mode in Chrome, but works in Firefox
-
I’m creating a html5 game using Phaser 3 game engine and I want to use Vue and Quasar advantages in it.
The problem is that in fullscreen mode Quasar doesn’t work in all major browsers except Firefox and UC BrowserHere’s the code: https://codepen.io/rusia_/pen/JzrVpm
Before displaying Quasar dialog I have to hide Phaser canvas with
style="display: none;"
and then after the dialog is closed the canvas restores.
If you click “Go fullscreen” and then “Open Quasar” you will see a QDialog.
All browsers display it properly, but the button “Return to Phaser” works only in Firefox (both desktop and mobile) and UC Browser (mobile). I didn’t test in Safari because I don’t have an iPhone.
In all other browsers to make it work you have to exit fullscreen by pressing Esc or F11 (or Back button on mobile)
I tested in all major browsers on Android and Windows (except Edge).What am I doing wrong? Or is it a Quasar bug or Phaser bug or browser bug or whatever?
-
This post is deleted! -
@rusia, did you find a solution?
Was there are reason that Quasar’s fullscreen api didn’t work?
Given that phaser is “inside” Quasar, using Quasar’s might be better…
-
@michael123, Yes, I found a solution. Though I’d rather say I found a workaround not a solution. I’ll give you more details later. To be honest I already forgot how exactly I solved this))
I didn’t say that Quasar’s fullscreen api didn’t work, it works well. I only said that in this particular case when Quasar is combined with Phaser there were some problems in major browsers except Firefox.
When phaser is “inside” quasar in html/css terms (not javascript) there were major problems. I mean when you put
<div id="phaser"></div>
inside<div id="q-app"></div>
so that it looks like<div id="q-app"> <div id="phaser"></div> </div>
then you have problems.
But if you isolate them:
<div id="phaser"></div> <div id="q-app"></div>
then they can live together.
I believe that generally it’s only html/css problem. Despite all my years of coding experience I still can’t grok css))
But in terms of javascript quasar, vue and phaser co-exist perfectly. No conflicts, no problems ever.
-
I solved this by adding this code when putting Quasar div to foreground:
document.getElementById('q-app')[this.phaser.scale.fullscreen.request]().then(() => {}, () => {})
https://codepen.io/rusia_/full/EBEKPE
However I noticed that in current version of Chrome that problems doesn’t exist anymore.