Using SSO in a third party controlled web view in Flutter Web - flutter

I'm using various SSO options such as Google for my Flutter Web app which generally work fine. If opened in a web browser the sign in dialog is opened either in a popup (desktop) or a new tab (mobile).
However, when the link to my app is shared in e.g. Facebook and opened through the Facebook app, a webview inside the Facebook app opens my app. This webview does not allow tabs, therefore the sign in dialog is opened in the current view, overriding my Flutter App. This prevents any SSO from being used when opening the app this way (e.g. through the Facebook app)
I've tried forcing the app to launch in the default browser instead of the Facebook web view but wasn't able to do so.
Is there any way to open the default browser even when the link to my app is opened from within the Facebook app?
Or
Is there any way to provide access to the (e.g. Google) authentication screen without killing my app in the process?

Related

how to open a website in a platform browser(safari, etc) from a web version app running in a webview

I have a very special case, that a webview widget in a flutter app runs another flutter web app, and the flutter web app has a button that opens a link by using urlLauncher.
I want to open the link with the default application but the web app just opens the link in the web view widget.
I tried all options in launchMode and they all have the same result.
how to solve this?

when the dynamic link is opened from browser(especially in safari) it is always redirecting to the app store even though app is installed in iOS

My URL is same as below, i will get this link to my mail from sendgrid and in iOS when i tap on this it always loads the browser first (safari most of the case) and opens in app preview page even though app is installed.
URL:<a clicktracking="off" href="https://{project_name}.page.link/?link=https://{project_name}.page.link/users/email_check/{{ $email_token }}&apn=com.{project_name}.app&isi={applestoreid}&ibi=com.{project_name}.app&efr=1">https://{project_name}.page.link/?link=https://{project_name}.page.link/users/email_check/{{ $email_token }}&apn=com.{project_name}.app&isi={applestoreid}&ibi=com.{project_name}.app&efr=1</a>
When you access a dynamic link in a browser. It will intentionally not go to your app because the actions indicate that your intent is to open a web page.
If you have your custom domain from Firebase ie: [your custom domain].app.goo.gl, send it into your link like so:
https://[your custom code].app.goo.gl/
And then tap that link. Does it open the app, or does it go to Safari? If it goes to Safari, it means that you haven't configured your iOS app for universal links yet, which is needed to support opening your custom domain url directly in the app. In Xcode, go to the Capabilities tab, and ensure that you've added the universal link domain as described in Apple's docs.
If you tapped the site address on the far top-right on iOS, it disables universal linking on that iOS app, until you long-tap and ask to open in the app again.
Second, you can't type in universal links into Safari's address bar and navigate to the app. Safari, by design, will open that URL in the browser. The easiest, most reliable way to test whether universal links are working is to put a universal link into the app, and tap the link from there.

Manage pages displayed in Progressive Web Apps ( PWA )

I am new to PWA and was just going through some readups. We have public website and in the website we provide login for users to manage their account. By going with PWA, I understand that users can save the website on the mobile homepage as an icon. My question is that , when user click on my PWA icon , can we load the login page for the users so that they can only manage account with PWA instead of loading entire website.
The Web App Manifest allows you to control how your app appears and how it's launched. You can specify home screen icons, the page to load when the app is launched, screen orientation, and even whether or not to show the browser chrome.
The web app manifest is a simple JSON file that gives you, the developer, the ability to control how your app appears to the user in areas where they would expect to see apps (for example, a mobile device's home screen), direct what the user can launch, and define its appearance at launch.
You can define how your app is launched, add a query string parameter to the start_url that indicates how it was launched.
"start_url": "/?utm_source=homescreen"
Hope this helps!
Yes you can, within your web app manifest file you can set a JSON property called "start_url".
There's further information here https://developers.google.com/web/fundamentals/engage-and-retain/web-app-manifest/#set_a_start_url

Persisting cookie for iPhone UIwebview mobile web app

I'm using MVC4 forms auth. My mobile web app runs in full screen UIwebview on iphone. I have a home screen icon for my mobile web app. The app needs to launch external links. Those launch in Safari, which works fine. However returning to the mobile web app by clicking again on the home screen icon, seems to have logged the user out. Ideally I want the user to remain logged into the web app after viewing the external links in Safari. Maybe the cookie got deleted? Can I persist the cookie?
FormsAuthentication.SetAuthCookie(username, createPersistentCookie: true);
This fixes the log out issue

iPhone Web App -- Links launched via "Home Screen" mode

I have an mobile web application that I'd like users to be able to use on "home screen mode" (that is, adding it as a bookmark to the homescreen, and then launching the web app via the home screen button).
However, this seems to behave differently than if it the web application was accessed via mobile Safari. For example, whenever I click a link on the web application (even an internal link), it separately launches an instance of Safari instead of displaying the page within the current "browser" (or whatever is launched when you click a bookmark on the home screen). How do I fix this?
Thanks!
iPhone Safari Web App opens links in new window