Custom JS libraries in Retool Mobile

I tried to use custom JS library howler.js (https://cdn.jsdelivr.net/npm/howler@2.2.3/dist/howler.min.js) to play sounds in retool mobile.

Code to play audio in query:

var sound = new Howl({
  src: ['http://retool.schmedt.de/media/audio/sound-1.mp3'],
  html5: true
});

sound.play();

It works fine in the editor as well as in the preview.

When I run it in the retool mobile app on iOS, error shown is "Can't find variable: Howl"

Do custom libraries not work in retool mobile (yet)?

We do support custom libraries, but Retool Mobile isn't a browser so the howler library will not work. (There is no Web Audio API.)

Custom sounds are on our roadmap, but in the meantime can you describe your use case?

Thank you, I did not know that howler also uses web audio api.

We are building an app for operators in our warehouse and would like an audio-feedback of the quantity of items confirmed by the operator to minimize input errors.

Text-to-speech would be ideal for our use-case, but we could work with pre-fabricated sounds as well.

3 Likes

@bca Dear Braden, could you please tell me how I could add and use turndown library in Retool Mobile? I need to convert my HTML content to md to render it correctly.

I've read on the form, that not all external js libraries could be added to Retool, but you advised torndown in this post.

In my case I just don't know how I should refer to TurndownService in my Heading value.
image

Thanks!

Try this URL https://unpkg.com/turndown@7.1.2/dist/turndown.js

Then invoke it as TurndownService().turndown('<a>Foo</a>')

1 Like

It works! Thanks!

1 Like

Hi is there any way to did a bit deeper into why an external library won't run.
I've referenced https://unpkg.com/mqtt/dist/mqtt.min.js in my mobile app library
But when I try to reference console.log(mqtt)
I get the error query20 failed (0.012s): mqtt is not defined

I was expecting issues when calling methods but not being able to reference mqtt object would point to an error in the lib but where can I find what retool might be objection too ?

mqtt.min.js ::
"use strict"; var mqtt=(()=>{var

@iiLaw Does that library work for you in a web app? Gave it a quick test there as well and it doesn't seem to load their for me either.

Joe thanks for taking a look.
No doesn't run in the [web-app] same issue mqtt is undefined

It would never run in the [Mobile App] as it runs over web sockets.
And from my testing the retool [mobile app] build doesn't support web sockets.
Even though react native does.

Hey, did you ever find a solution for this?

@Rkhan This particular library isn't working in Retool currently. No work arounds or resolutions for this particular library yet. Are you looking at the same one, or a different one?

No necessary the library. Just looking for a way to give an audible or vibration feedback to user.

Similarly, I am trying to use Jose for JWT, and Text Encoding in the mobile app, rather than web-mobile. Possible?

I was using these libs:
https://cdnjs.cloudflare.com/ajax/libs/jose/5.2.1/index.umd.min.js
https://cdn.jsdelivr.net/npm/text-encoding@0.7.0/lib/encoding.min.js