The CAM Framework (Content Access Manager), Allows to promote content via a Login Plugin, originating from various sources, such as the Applicaster2 CMS but also in the form of Feeds via a DSP.
- Content originating from the Applicaster2 CMS
- Content coming in the form of Feeds via a DSP (Data Source Provider)
Configuring the UI of a Login Screen via JSON File and the CAM Framework:
Input Fields which control the UI (such as texts, localisations and buttons), are configured via a JSON file added to the "Authentication Input Fields" in the Plugin Screen configuration.
The exception to the above, would be Assets, which are uploaded via a Zip file. Zapp doesn’t support uploading the assets via the screen configuration fields, so you have to do it on the plugin itself in the plugin configuration screen.
Sample ZIP assets file to be inserted on the plugin level, for Android -
Sample ZIP assets file to be inserted on the plugin level, for iOS -
Uploading the JSON with the UI Input Fields:
Please upload a JSON file with a section for the sign-up and login screens, with each section containing the expected input fields for the given screen. Please follow the format and guidance outlined in the example file [here](https://example.com)
For example, the basic Login Plugin which can be seen above, supports the following Field types via JSON file:
- Sign Up
- Login
- Password reset
This manifests visually in the following UI:
- An email
- A Password
- Sign up button
{ "Sign-up": [ { "type": "EMAIL", "key": "email", "title": "Email", "hint": "Email", "mandatory": true }, { "type": "PASSWORD", "key": "password", "title": "Password", "hint": "Password", "mandatory": true } ], "Login": [ { "type": "EMAIL", "key": "email", "title": "Email", "hint": "Email", "mandatory": true }, { "type": "PASSWORD", "key": "password", "title": "Password", "hint": "Password", "mandatory": true } ], "Password-reset": [ { "type": "EMAIL", "key": "email", "title": "Email", "hint": "Email", "mandatory": true } ] }
By Adding the JSON to the plugin, you can actually dictate which configurations, your plugin will require. The UI, in-turn, is not specific for a certain plugin or service, but rather the UI of the CAM framework, which can be used as a Screen Flow and Logic in Any plugin.
The Authentication Screens (Login, Signup, Reset Password) are configured using a json that describes the fields that will be presented on those screens.
The screens use this configuration to determine which fields will be presented to the user in those screens, the input type (text, number, etc.), and whether or not they are mandatory.
Each json object consists of the following fields:
- "type": the type of input field, out of the following options: TEXT, NUMBER, PASSWORD, EMAIL
- "key": the key that will be used by the authentication service api to send the contents of the field.
- "title": the title that will be presented in the screen UI next to the input field, identifying it for the user
- "hint": the hint text that will appear within the field itself, to guide the user on how to fill in the field
- "mandatory": determines whether the field is mandatory or not. Fields that are marked as mandatory must not be left empty, and will trigger an alert if the user tries to submit the form without populating them.
Please find here an example of the expected Configuration JSON Structure:
{ "Sign-up": [ { "type": "EMAIL", "key": "email", "title": "Email", "hint": "Email", "mandatory": true }, { "type": "PASSWORD", "key": "password", "title": "Password", "hint": "Password", "mandatory": true }, { "type": "NUMBER", "key": "phone", "title": "Phone", "hint": "Phone", "mandatory": true }, { "type": "TEXT", "key": "gender", "title": "Gender", "hint": "Gender", "mandatory": false } ], "Login": [ { "type": "EMAIL", "key": "email", "title": "Email", "hint": "Email", "mandatory": true }, { "type": "PASSWORD", "key": "password", "title": "Password", "hint": "Password", "mandatory": true } ], "Password-reset": [ { "type": "EMAIL", "key": "email", "title": "Email", "hint": "Email", "mandatory": true } ] }
Alternative Authentication Fields and Asset Configurations
Additional buttons which are Not Input fields (for example: Facebook Social Login Button), are set up via the "alternative authentication" fields. Here are the requirements:
https://docs.google.com/document/d/1atSODiGKggyc2Sd0OEmRp48XczyVHnmbH97nV0QqWPE/edit?usp=sharing
Text and Styling (Remote) -This also means that the Text and Styling changes are all Remote (runtime), and don't require a new build.
Assets (Zip File upload on a Plugin-App Version Level) - Note that the Assets configuration is still done via the Plugin Configuration, and not via remotely via the Screen Configuration. This is done on a Version level (in the version-level plugin configuration, and not on the UI Builder Plugin level)
[It's a Zapp requirement that the iOS and Android Assets Bundle, Not be Screen-Level Configuration fields]
For example:
* A default Zip Asset file is pre-loaded. It's required to click on "Save" and save this default Zip file, the first time you create a build for a version
Please find attached the links to the Text, Assets and Styling keys of the plugin:
- Detailed Sketch File -
Purchases Configuration on an App Level in Zapp
An important point to notice, is that when setting up a version of the app to Support purchases, one must enter the "General Settings" option on the App Dropdown menu in Zapp, and select the "Purchases" checkbox:
Unsupported Products and Features:
- Link Categories are Not supported. This means for example, that you can't assign an Authorisation Policy to a URL Scheme.
- ie: If a Push Notifications is sent Directly to a Live Channel via URL Scheme, there will Not be a way to call here for any authentication.
- Redeem Codes are Not Supported
- Logout is currently Not yet supported.
Troubleshooting Rule of Thumb:
i- Issues with the UI and Screen Flow -
Usually would be as a result of a problem in the CAM Framework (in this case, manifested in the form of the plugin Configuration Fields).
ii- Issues with the actual Login Process / Sign-In / Reset Password / etc.. -
This usually would suggest a problem with the Plugin implementation, and thus the Plugin needs to be reviewed with the OPT team.
Comments
0 comments
Please sign in to leave a comment.