Hi there,
I am wondering:
What are the differences between Web View, System Browser, and External Browser in InAppBRowser Plugin?
regards and thanks
Here’s a concrete example of how to create and use a deep link for an OutSystems mobile app (O11).
OutSystems mobile deep links follow this syntax:
appidentifier://ModuleName/ScreenName?Param1=Value1&Param2=Value2
appidentifier
ModuleName
ScreenName
Example:
mybankapp
CustomerApp
AccountDetails
CustomerId
Deep link:
mybankapp://CustomerApp/AccountDetails?CustomerId=12345
If the app is installed, tapping that link (e.g., from an email or a web page) will open the OutSystems mobile app and navigate to CustomerApp.AccountDetails, passing CustomerId = "12345". How to use DeepLinks in version 10?
CustomerApp.AccountDetails
CustomerId = "12345"
Suppose you use Keycloak and you want it to redirect back to your OutSystems app after login with an authorization code:
myauthapp
AuthModule
OAuthCallback
Code
Redirect URI you configure in Keycloak:
myauthapp://AuthModule/OAuthCallback?Code={authorization_code}
When Keycloak finishes the login and calls this URI, the OutSystems app opens on AuthModule.OAuthCallback and you read the Code input parameter to continue the OAuth flow (exchange code for tokens, etc.). How to define Mobile App deep links
AuthModule.OAuthCallback
If you send an email with a “Go to order” button:
shopapp
Orders
OrderDetails
OrderId
Link in the email:
shopapp://Orders/OrderDetails?OrderId=9876
User taps -> mobile app opens -> navigates directly to Orders.OrderDetails showing order 9876. How to use DeepLinks in version 10?
Orders.OrderDetails
9876
If you share your App Identifier, module, and target screen name, I can write the exact deep link string for your case.
Here’s how the three options in the InAppBrowser plugin differ and when you’d typically use each one. InAppBrowser plugin
What it is:
Characteristics:
OnBrowserPageLoaded
OnBrowserPageNavigationCompleted
OnBrowserClosed
When to use:
If you describe your specific scenario (e.g., “open a responsive website but keep user in the app” vs “open terms & conditions in full browser”), I can suggest which of the three is most appropriate for your case.
For an authorization-code flow with a third‑party IdP like Keycloak, the System Browser option is usually the best choice.
Why System Browser is recommended:
Security & UX for OAuth2/OIDC flows
Better handling of redirects / cookies
User stays in the app context
Web View (OpenInWebView) You might use this if you must have full visual control and can handle all redirect logic yourself, but it’s less ideal for standard OAuth/OIDC flows because it doesn’t share the system browser session and is more fragile for SSO scenarios. InAppBrowser plugin
External Browser (OpenInExternalBrowser) Opens the device’s default browser app (Chrome/Safari), pushing your app to background. Technically it can work for Keycloak, but you lose control and events, and the UX is worse since users leave the app. InAppBrowser plugin
So for Keycloak sending an authorization code in a mobile OutSystems (O11) app, use System Browser via the InAppBrowser plugin, configure your redirect URI back to the app (custom scheme / deep link), and handle the returned authorization code in your app logic.