@Harri_Sarsa , this one’s a real doozy, so I’m tagging you.
My app lets users sync their Google calendars via Google’s oauth.
I am testing it as a web app at the moment (web app for both desktop and mobile, but not native mobile.)
I have a container that, when clicked, hits my server to get the oauth URL, then that url is opened using “open url”:
It works perfectly on Android and desktop, but iPhones will not open the browser app.
Here are the troubleshooting steps I have taken:
I had the app put the authUrl into a page variable and bound that to a text component. I then copied that and manually pasted it into the “Open URL” node (so it was working off of static text instead of node output). That opened it just fine.
I tried binding the “Open URL” node to the page variable, so it was getting the node output from the pageVar instead of directly from the node output. I confirmed that the text variable populated the oauth url, but it did not open.
Instead of setting the page variable using the node output, I set the page variable to the static test “https://google.com” and had the “Open URL” open that. It opened just fine.
I am at a complete loss about why this node would work on web on Android and desktop but get hung up on web on iOS when trying to pull the authUrl from a node output.
@Mari , hi! Any chance you might have insight into this issue? I continue to be stumped. This is app 173781. If you want to DM me an email address for you, I can give you a custom link that would log you in as a user.
Very strange. Does it work fine with the same standalone web app on Safari desktop? What about preview.appgyver.com on Safari iOS? What about Chrome browser on iOS? What about a different iOS device?
Can you share repro steps to the issue, via DM if needed for sensitive login info?
Safari Desktop: I don’t have a Mac, so I can’t test this
Preview.appgyver.com on Safari iOS: Button works if url hard-coded. Does not work if pulling from node.
Chrome browser on iOS: Works! It gave me a “popup blocked” notification and let me allow it. But I don’t think popup blocking is the issue with Safari since it works when the url is hard-coded.
Different iOS device: I only have the one iPhone, so I can’t test this
I’m following up in a DM with login info so you can play with it yourself.
Thank you so, so, so much for looking into this. I appreciate you guys a lot.
I don’t understand what the core issue is, but I did find a workaround for this.
Safari wouldn’t trigger the “open url” node if there were any other nodes in the function.
Originally, I had a “get record” node that fetched the Google auth url, then the “open url” node opened it.
Since that didn’t work, I moved the “get record” node to trigger automatically on page load and store the auth url in a page variable. Then when the user hits the “continue with Google” button, the only node that triggers is the “open url” node with the page variable as an input.