Running other apps or software within Kiosk Pro

Kiosk Pro is a specialized web browser that is designed for use in public spaces. Using Kiosk Pro with other applications or software can allow you to easily control how that application is presented and access other web-based applications or functionality that you may need. 

What is possible and how this is set up will depend on whether the application/software is web-based or another native iOS app. 

In this article

Using Kiosk Pro with Web-Based Apps

If your app is web-based, it can be set as the homepage and displayed directly within Kiosk Pro.  

If the kiosk needs to serve multiple purposes, a menu page can be created with links to your web app and any other URLs required - this would be set as the homepage. 

For web apps with a login component, all paid versions of Kiosk Pro can be set up to clear cache and/or cookies when refreshing to the homepage, effectively logging out any active user sessions. 

Since all content is being displayed within Kiosk Pro, it’s possible to lock the device to the app using Guided Access, Single App Mode, or Autonomous Single App Mode (where the app is given permissions to start and end a Single App Mode session on its own).  

Since the introduction of the notification center in iOS 8, which slides down from the top of the screen  and can allow visitors to escape to different apps, it’s been generally considered necessary to lock devices in public environments programmatically through one of these options.  More information about these options and how they can be set up can be found on our knowledgebase here

Using Kiosk Pro with Native iOS Apps

Due to the way iOS is structured, it’s not possible for one native iOS app to run another, but there are possible workarounds. It is possible for an app to launch another app through a custom URL scheme or to limit the apps shown on the device’s Home screen to keep visitors within a set of approved apps.  


Custom URL Schemes

In certain circumstances, it is possible for one app to launch another one directly through what is referred to as a custom URL scheme.  

Apps can register a URL scheme for themselves in project settings within Xcode. When another app calls that URL, the app matching that scheme is launched and passed the full URL, which may contain additional information or parameters. It’s also possible to query additional information, like which app opened it, from the system-provided options dictionary.

Every version of Kiosk Pro includes a predefined custom URL scheme, which can be found here.

Kiosk Pro also supports executing any standard URL scheme so it’s possible to launch any other app with a custom URL scheme registered from within Kiosk Pro. 

Once another app is launched, it is then active and will remain so until it returns control to Kiosk Pro.  This can be triggered through either a direct user action (like tapping a button) or an automatic time out (which, in this type of unattended use case, generally requires listening for touch events and triggering a redirect after a certain time period without touch). If the status bar is shown, it will also contain a link back to the app which launched the current app. 

When using Guided Access or Single App Mode, calls to launch another app via custom URL scheme are effectively ignored as the device is locked to whatever app is currently running.

Autonomous Single App Mode is a feature of iOS that allows an app to enable and disable a Single App Mode session from within the app itself.  ASAM can be a useful option in this context as an app can end a session itself immediately prior to calling a custom URL scheme, allowing the request to be successfully processed and the next app to be launched.

The Plus and Enterprise versions of Kiosk Pro both support ASAM and can be set up to start a new session on app launch, manually through user action, or through a JavaScript API call. ASAM sessions can be ended manually through the settings menu, through a specific touch gesture/passcode, or through a JavaScript API call.

This means that it’s possible to have a workflow where Kiosk Pro starts a new session on app launch, locking the device to itself and preventing users from exiting. Then when a button is pressed in the interface that links to another app, a JavaScript API call can unlock that ASAM session and launch the partner app, which would then be active.

To complete the loop, that partner app would need to launch an ASAM session of its own for the duration of use, then exit its ASAM session and return the device to Kiosk Pro through its custom URL scheme.

Limiting Apps Shown on the Home Screen 

If you aren’t able to use custom URL schemes, you also have the option of adding a configuration profile to limit the apps on the Home screen. In this case, you'd hide everything but the specific apps you want to use and the main Settings menu (which can't currently be hidden through this profile), allowing users to toggle between the apps through the Home button while still limiting the use of the device. 

Since the main Settings menu would be available in this scenario, you may also want to look at the use of iOS Restrictions to lock down as much functionality as possible (for example, the ability to install or delete apps). 

To apply this type of profile, the devices would need to be supervised. Then you could add the configuration profile through an MDM (as described in the link above) or using Apple's free Configurator software for Mac

Still stuck? How can we help? How can we help?