Sandbox enables users to configure the application using a Sandbox configuration plist file. This functionality is particularly useful to administrators who wish to configure Sandbox on multiple devices, relieving them from having to manually configure each device individually. To configure Sandbox with a configuration plist file, it is necessary to construct a Sandbox configuration property list file (also known as a plist file). Property list files have the file extension ‘.plist’. A template configuration plist file is available at http://sandbox.floatlearning.com/exampleConfig.plist
.
Once a configuration plist has been created, administrators may now easily load the profile onto many devices. Sandbox accommodates this through the use of a custom URL schema. Using Mobile Safari (or a link in an email, a webclip, etc.), navigate to floatsandbox://configuration/example.com/configuration.plist
.
For example, floatsandbox://configuration/sandbox.floatlearning.com/exampleConfig.plist.
For your convenience, here are some sample Configuration files to get you started on setting up Sandbox:
A Sandbox configuration plist is an XML file that conforms to Apple’s Property List document type. The configuration plist must be valid XML, meaning it must begin with an XML-type declaration followed by a DOCTYPE declaration. Both of these lines may be copied from the profile template available on Float’s website.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
... your settings parameters
</dict>
</plist>
The configuration plist itself is a collection of key-value pairs, each corresponding to a particular settings field within the application:
<key>key name</key>
<string>string value</string>
<key>key name</key>
<integer>integer value</integer>
<key>key name</key>
<true />
Configuration Options
User Interface options
Sandbox allows administrators to customize the user interface via manual or profile configurations:
iOS Status Bar
This settings allows hiding of iOS’s default status bar. Set this value to true to show the status bar. Set it to false to hide the status bar. Its default value is true.
key: statusBarKey
type: boolean
default: <false/>
Set this value to <true/>
to disable the status bar.
Note: The status bar is an iOS default interface element.
It is the upper-most interface element. This setting affects both
iPhone and iPad versions of Sandbox.
Navigation Bar
This settings allows the hiding of Sandbox’s navigation bar. Set this value to true to show the navigation bar. Set it to false to hide the navigation bar. Its default value is true.
key: navBarKey
type: boolean
default: <false/>
Set this value to <true/>
to disable the navigation bar.
Note: The navigation bar is the bar that appears at the top of the Sandbox interface. This setting affects both iPhone and iPad versions of Sandbox.
----
Toolbar
This settings allows the hiding of Sandbox’s toolbar. Set this value to true to show the toolbar. Set it to false to hide the toolbar. Its default value is true.
key: toolBarKey
type: boolean
default: <false/>
Set this value to <true/>
to disable the toolbar.
Note: The toolbar is only used in the iPhone version of Sandbox. It is the interface at the bottom of the screen. The value of this setting will not affect the interface of Sandbox running on an iPad.
Customizing the “Restricted” message
When a user attempts to visit a website blocked by Sandbox, the user is presented with the “restricted message.” This is the message that alerts the user that they are not being granted access to the URL they’re trying to access.
key: restrictedMessageKey
type: string
default: "Invalid permissions."
Configuring the Home Page
When the application launches, Sandbox will display the URL set in the start page setting. This is the first page users will see when interacting with a configured version of Sandbox.
key: startPageKey
type: string
default: (blank)
Configuring the Idle Timer
Sandbox has the ability to keep the device awake at all times. If the idle timer is enabled, the application will return to its home page when the time has elapsed.
key: idleRestartKey
type: boolean
default: <false/>
Set this to <true/>
if you want to enable Sandbox’s idle timer.
key: idleTimeKey
type: integer
default: 1
Set this value to the number of minutes Sandbox should wait before returning to its home page.
Configuring the Email Share Option
Sandbox has the ability to share a webpage via email
key: shareEmailEnabledKey
type: boolean
default: <true/>
Set this value to <false/>
if you want to disable email sharing.
Configuring the Printing Option
Sandbox has the ability to print the current webpage from a device.
key: sharePrintEnabledKey
type: boolean
default: <true/>
Set this value to <false/>
if you want to disable printing.
Configuring the Application’s Lifecycle
Sandbox has the ability to either retain its most recent state, or return to its home page if the application is exited and then resumed.
key: exitRestartKey
type: boolean
default: <false/>
Set this value to <true/>
if you want Sandbox to return to its home page if the application is interrupted and then returns to an active state.
Clearing Cache and Resetting Browser History
Whenever Sandbox resets (either after the idle timer fires or when it is exited and resumed), it can also clear it's cache and browsing history.
key: restartClearsCacheKey
type: boolean
default: <true/>
Set this value to <false/>
if you want to prevent Sandbox from clearing it's cache and history when it resets.
Configuring Whitelist and Bookmarks
Sandbox is governed by a “whitelist.” Only web resources validated against the whitelist will be displayed within the application. The whitelist is a list of approved domains under which content may be viewed. For example, if gowithfloat.com is added to the whitelist, all content under gowithfloat.com and its subdomains will be approved and loaded by Sandbox. Because the whitelist is a list, its data type is slightly more complex than those previously listed.
<array>
<string>gowithfloat.com</string>
<string>cnn.com</string>
</array>
Whitelist
The whitelist is an array of strings representing the hostnames of sites that the user may access.
key: whitelistKey
type array
default: (blank)
Enter all domains accessible to the user.
Note: This list can vary from one item to many items depending on the specific scenario in which Sandbox is implemented.
Bookmarks
Sandbox also allows administrators to set bookmarks inside the application. If there are any bookmarks entered in the bookmarks list, the user can access the items by simply tapping the “bookmarks” button in Sandbox’s toolbar. If a site is bookmarked, it is automatically whitelisted. Users can always access bookmarked URLs. The bookmark setting is also of type array and should follow the same pattern as configurations of the whitelist key.
key: bookmarksKey
type: array
default: none
Enter all domains accessible to the user from Sandbox’s bookmarks button.
Note: The option to display the bookmarks list will be disabled if no bookmarks are included in this configuration.
Strict URL Filtering
By default, Sandbox permits web pages to load embedded assets (such as a YouTube video) from other websites. Enabling Strict URL Filtering prevents web pages from loading assets from non-whitelisted sources.
key: strictURLFilteringKey
type: boolean
default: <false/>
Locking the Configuration with a Passcode
After configuring Sandbox with a configuration plist, administrators will be presented the opportunity to lock any further changes to the application’s settings by means of a passcode.
If Sandbox successfully configures itself from a configuration plist, the administrator will be asked if they wish to set a four-digit passcode. If they answer yes, the application will securely store this passcode.
If any attempts to change Sandbox’s settings are made while protected by a passcode, the user will be alerted that their actions will not be saved unless they enter the correct passcode. Upon entering the correct passcode, any changes made will be saved to the application’s
settings.
If an administrator attempts to configure Sandbox using a configuration plist after a passcode has been set, they will be presented with an opportunity to enter the security passcode. If the passcode entered is correct, Sandbox will configure itself with the
new profile. If the password is incorrect, no changes will be made to Sandbox’s settings.
If an administrator forgets the passcode, Sandbox will be permanently locked. It will be necessary to delete Sandbox from the device and then reconfigure the application.
Special Characters in Configuration Files
There are a handful of special characters that need to be escaped before using in a Property List file. If you want to use any of these characeters, replace them with the "escaped character":
Character |
Escaped Character |
& (ampersand) | & |
< (less than) | < |
> (greater than) | > |
" (quotation mark) | " |
For example, if you wanted to create a bookmark named Help & Information
, you would enter Help & Information.
Sample Configuration File
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>startPageKey</key>
<string>ionagroup.com</string>
<key>statusBarKey</key>
<false/>
<key>navBarKey</key>
<false/>
<key>toolBarKey</key>
<false/>
<key>restrictedMessageKey</key>
<string>This is the restricted message.</string>
<key>idleTimeKey</key>
<integer>0</integer>
<key>idleRestartKey</key>
<false/>
<key>exitRestartKey</key>
<false/>
<key>strictURLFilteringKey</key>
<true/>
<key>whitelistKey</key>
<array>
<string>gowithfloat.com</string>
</array>
<key>bookmarksKey</key>
<array>
<string>google.com</string>
</array>
</dict>
</plist>
Download this sample configuration plist.