autoplay for pwa apps

I am developing a PWA app that includes playing HTML5 audio with voice prompts. Including the visible HTML5 audio play controls distract the user from the visual prompts on the screen and is an unacceptable user experience for our app.


On MacOS, Android and Windows we can educate our users to enable autoplay for our app (site) if they want the voice prompts. But does not appear there is such a setting to enable autoplay on iOS and HTML5 audio play is only allowed in a click handler.


If a user has installed a PWA app does that signal their intent to treat the site as a native app? If so, coudl this intent be accepted as an explicit opt-in for allowing audio play for that app (site) in the case of iOS?


Further, PWA apps also cache their audio using a serviceworker. Thus, for a PWA app intended to function offline like a native app, the audio will only be downloaded once with a corresponding reduced data use on a Cellular network when online.


Bottom line - it woudl be appreciated if Apple could please comment on this suggestion - must we design our audio play back to only ever occur in a click handler or would it be possible at some point for the autoplay blocker on iOS to accomodate the case of PWA apps that the user has installed to the device?

Replies

Another consideration is allowing iOS users to specify website preferences as can be done on MacOS, Windows and Android.

I see that Google already allowed autoplay on installed PWAs for mobile, and now also do allow it for desktop: https://developers.google.com/web/updates/2019/02/chrome-73-media-updates#autoplay-pwa


Will Apple follow? Will they even talk about it? Hello???


Because iPhone and iPad are critical targets for our startup, Apple is effectively denying using a PWA for our minimal viable product. For now we will develop our next prototype as a native app instead of PWA - starting us down the path of abandoning what seemed like a dream come true with PWA.

Maybe here we can use the term HTML5 Apps instead of PWA.
;)

I think you can try the autoplay() function using a SetTimeOut() in JS. Why?

The last year I've been working as instructor in a course about Web Apps ecosystem covering the major device platforms. When I did the class where the users learnt about Voice Synthesis the Web Apps, after using Add to home screen, don't load automatically the list of voices and languages available on the platform.

We tried for a few minutes using await, async, (and also avoid ;) and we don't got the solution.
Finally we solved using a non-good-practice in the "Codes of code": We detect the platform and in those case where the automatically voices loading do not work, we start a JS SetTimeOut() after a few seconds we called the function to load the list of voices and voilá. It works fine!

In some cases the non-good-practices became in an emergency-well-practices.

Another year has passed and yet Apple customers didn't get simple features such as clicking on a link and having their PWA's opened. I don't know what to say about it but it seems like Apple do not care about trends. Google is beating Apple in every single infrastructure related to PWAs. I'm sure Apple can act more clever than ignoring the gap in Safari PWA world.