How to create a interactive widget

I want to create interactive widget. It should have a button which, once pressed makes a http request. (actually switches on the preconditioniong of my car)
I used so far the url which calls the same script with a parameter:


It works, I can evaluate the parameter. However it reloads the widget again. Is there any possibility to have interactions within a widget?

Edit: I made a small video to demonstrate the behavior… opening the scriptable app is not really what I want:

You can use any URL, so why not the one to “make a http request”?

It needs a login. This “one” http requests consists of 4 single requests with some logic. Sorry for simplifying the problem to much.

So I’ve achieved something similar. What you can do is something like this:

if (args.queryParameters.action) {
    if (args.queryParameters.action === 'switchAirconOn') {
        await methodToSendRequest()
    //cancel rest of script and return to the homescreen'shortcuts://x-callback-url/run-shortcut?name=SpringBoard')

Running the SpringBoard shortcut will return you to the home screen (via a brief jump to the shortcuts app).

You can get the springboard shortcut here:

You could create a shortcut to update your widget and then run SpringBoard if you need your widget to update when you click a “widget button”. You’d just want to update the x-callback name parameter to whatever your shortcut is called.

1 Like

Thanks very much, you saved the day
Its a work around, but it works perfectly. The jump to shortcuts is not a problem at all, the jump to the scriptable is worse since it always takes some time to execute this command. I wish scripts could run in background.