Details for Mathematica Programmers
The Wolfram CDF Player provides a deployment engine for graphical user-interface-driven applications using Mathematica's dynamic interface features. Almost all programming and computational functions available in Mathematica can be used to build applications for CDF Player, but there are a few programming restrictions for applications to keep in mind when saving as FreeCDF*.
Controls and Input
All interactive content must be generated with the Manipulate command and may only use mouse-driven elements (Slider, Locator, Checkbox, PopupMenu, etc).
Non-numeric input fields are not supported. Avoid InputField[x, String] and InputField[x, Boxes]. InputField[x, Expression] and InputField[x] are restricted to work only with numbers, and InputField[x, Number] works normally.
Dialog windows are not supported. Avoid using Input or InputString.
Data Import and Export
Data import and export are not supported from within CDF Player except for Wolfram-curated data sources (e.g. ChemicalData, CountryData, WordData). Note that data can be preloaded into your application during authoring (see below). Avoid commands such as Import, ImportString, ExportString, ReadList, OpenRead, OpenWrite, and OpenSQLConnection. Because CDF Player cannot load data at runtime, you must ensure that all necessary information is embedded within the interactive elements. There are two basic approaches to embedding:
- Initialization: small blocks of code and data can be included in the Manipulate command using the Initialization option, for example:
- SaveDefinitions: for larger blocks of code, packages, or larger data files, it may be more convenient to define them before creating the Manipulate, then store their state within the Manipulate using the SaveDefinitions option, for example:
MathLink operations, including .NET/Link, are not supported. Avoid using commands such as Install, LinkConnect, LinkOpen, Links, and so on. This includes links to remote Mathematica kernels such as gridMathematica.
Alternative Front Ends
Alternative front ends to the kernel, such as those that could be written in Java, C/C++, or .NET, are not supported.