Downloading file in Zoom App

Zoom Apps Configuration
Flask + Vue.js

Description
I want to (on a button click) fetch from a backend (on Flask) and download a .docx file from a single-page Vue.js app. At the moment, my solution works from a regular Chrome browser, however not from inside Zoom’s built-in browser. I don’t see any errors in the console as well.

After the file is sent from BE, the FE code does as follows:

async download() {
      await fetch(`${config.apiUrl}/download`)
          .then((response) => {
            response.blob().then((blob) => {
              const url = window.URL.createObjectURL(blob);
              window.open(url);
            })
          })
}

Error?
The above code does not produce any errors, however file downloading does not happen, while it works in a regular browser.

Plus, when I change the last line to:

window.open(url, "_self");

I get “403 Forbidden, domain or scheme is not allowed”. But the domain is whitelisted, see further.

Troubleshooting Routes
The format of the created url is something like blob:https://1234567.ngrok.app/b1e2f3eb-bd45-6a78-ac91-e011121ce3f4. I have whitelisted the domain of the url 1234567.ngrok.app under the Domain Allow List, however this did not help.

How can I make downloading a file on a button click from a Zoom App work?

I’d appreciate any input on this problem. Thanks in advance.

@yuliia,

Thank you for posting in the Zoom Developer Forum. I believe, downloading files through the Zoom App might be not possible, and we recommend sending the user to the system browser using OpenURL function.

With regards to the 403 Forbidden, domain or scheme is not allowed” error, have you verified that the response for the source URL does have OWASP headers enabled?