We had to use classic confinement because of the reasons explained in this topic: Integrate snapd-xdg-open into snapd repository (posts created by jleyva). Basically, the current implementation of snapd-xdg-open does not allow our app to launch files (not only urls) via the file:// protocol.