With Joomla4iOS you have the ability to easily implement your existing Joomla infrastructure within your iOS Apps. The framework is free and you don’t need any other dependencies.
jBackend Community is the lite version of jBackend available for free, no subscription required. It provides all the basic features to integrate Joomla content with mobile apps, syndication networks, affiliate networks and any external system, and it is mainly intended to give a chance to test jBackend capabilities, to develop and test new modules, and to provide some basic REST API integration features to a Joomla site.
When the upgrade to the full jBackend version is required, it is possible to install the full jBackend package over the Community version. The two versions share the same data tables and settings, and the upgrade process will preserve the configuration and all existing data.
The Community version is completely free, but doesn't provide the full functionalities available for jBackend. Here's a comparison matrix between jBackend Community and jBackend:
Features | jBackend Community | jBackend |
---|---|---|
Extensible through plugins to increase API and support any Joomla extension | (2 plugins in the package) |
(3 plugins in the package, 7+ included with the subscription) |
Support for publishing of multiple endpoints, each with its specific settings | ||
Three endpoint access type (free access, user authenticated only, API Key required) | (free only) |
|
Tracing requests in the database for each endpoint | ||
Selection of jBackend plugins to enable for each endpoint | ||
API Key management interface | (not used) |
|
Request log management interface | ||
Each API Key can have a max daily requests limit and an expiration date | (not used) |
|
Each API Key can be targeted on separate endpoints | (not used) |
|
Access control is compliant with integrated ACL | (not used) |
|
Support for REST compliant requests | ||
JSON format for responses | ||
Support for session ID | (only cookies) |
|
Get the list of articles by tag id (content module) | ||
Support for push notifications on iOS (APNs) and Android (GCM) | ||
Custom payload for push notifications | ||
Scheduled sending of push notifications | ||
Push notifications can be create and scheduled via API call | ||
Push notifications can be targeted on selected users, groups or devices | ||
License | GPL 2.0 | GPL 2.0 |
Price | Free | 14 € (one year subscription) |
The basic extension package includes the jBackend component, that provides the general infrastructure for endpoints, and plugins support system. Also the following plugins are already included in the basic package:
Additional plugins are available only with a valid jBackend Subscription and can be downloaded from here and installed separately. More info about jBackend can be found here
jBackend Community is released under GPL 2.0 license.
Since version 3, jBackend introduced support for push notifications for Android and iOS, providing all needed functions to manage multiple mobile apps, to register devices and to send scheduled push notifications. The following video shows how to use jBackend to create a new application, to call the push register service to register a device, and the schedule and trigger a push notification.
The Push Module is implemented with the plg_jbackend_push plugin. It provides functions related to mobile push notifications for iOS and Android. Here is the list of supported methods.
The register function must be called by mobile apps each time they get a notification token from the push service (e.g. APNs or FCM) to register the device on jBackend. Registration is needed to send push notifications to the app on the registered device.
action=put module=push resource=register token=<token> appcode=<appcode> platform=<platform> user_id=<user_id> (optional) user_email=<user_email> (optional) ios_alert=<true or 1> (optional) ios_badge=<true or 1> (optional) ios_sound=<true or 1> (optional)
<end-point>?action=put&module=push&resource=register&token=<token>&appcode=<appcode>&platform=ios
<end-point>/put/push/register?token=<token>&appcode=<appcode>&platform=android
{ "status": "ok", "token": "<token>", "appcode": "<appcode>", "platform": "<generic|android|ios>", "platform_code": <platform_code>, "app_id": "<app_id>", "device_id": <device_id>, "ios_alert": <0|1>, "ios_badge": <0|1>, "ios_sound": <0|1> }
Supported platform codes are 0=Generic, 1=Android, 2=iOS.
It is possible to associate an existing Joomla user to the device with the user_id param. If the plugin option Require user email is enabled, it is also needed to include the user_email field, and the email must match with the registered email address for the user with the specified user_id.
On iOS platform the app can also send (optionally) its notification settings for alert (ios_alert), badge (ios_badge), and sound (ios_sound). These values can be used to filter target devices when sending push notifications from jBackend.
The scheduler function must be called on a regular basis (e.g. from a crontab) to trigger the sending of scheduled push notifications.
action=get module=push resource=scheduler
<end-point>?action=get&module=push&resource=scheduler
<end-point>/get/push/scheduler
{ "status": "ok", "batch_size": <N>, "sent": <T>, "success": <S>, "failure": <F> }
Sent is the total number of processed notifications.
This function allows to create a push notification programmatically (i.e. add a notification to the queue).
action=post module=push resource=notifications title=<title> message=<message> app_code=<app_code> platform=<platform> target=<target> target_users=<target_users> target_groups=<target_groups> target_devices=<target_devices> scheduled_time=<scheduled_time> payload=<payload> (optional) context=<context> (optional) auth_token=<auth_token> (optional)
<end-point>?action=post&module=push&resource=notifications&title=<title>&message=<message>&app_code=<code>&platform=1&target=0&scheduled_time=2016-11-13%2000:15:31
<end-point>/post/push/notifications?title=<title>&message=<message>&app_code=<code>&platform=1&target=0&scheduled_time=2016-11-13%2000:15:31
{ "status": "ok" }
Supported platform codes are 0=Generic, 1=Android, 2=iOS.
Supported target codes are 0=All, 1=Selected users, 2=Selected groups, 3=Selected devices.
Params target_users, target_groups and target_devices are comma separated list of id.
Scheduled time format is YYYY-MM-DD HH:MM:SS (e.g. 2016-07-23 00:19:11).
Params payload and context can be a string or a json.
The following options are available for push plugin:
Option | Description |
Auto app registration | Allow automatic creation of new applications by code. |
Require user email | Require the user email to add the user id when register a device (as a security measure). |
JSON Register | Enable JSON payload on register action. |
JSON Notifications | Enable JSON payload on add notification action. |
Protect Notifications | Enable token protection on add notification action. |
Authorization Token | The token that enables the add notification action. |
Batch size | Number of push messages to send out each batch job. |
Log notifications | Enable logging of all notifications in a dedicated database table (useful for analytics purposes). |
FCM URL | URL of Firebase Cloud Messaging server. |
API key | Google API key. |
Use FCM | Use FCM to send push messages on iOS too. |
APNs URL | URL of Apple APNs server. |
Timeout | APNs connection timeout. |
jBackend is a Joomla extension that gives you all the power of Joomla CMS through an extensible and pluggable set of REST API. With these API you can access to all site's contents and features, and use Joomla as a backend system for smartphone and mobile apps, syndication networks, external websites, and provide web services for any external system.
Furthermore jBackend provides a full push notifications platform for iOS and Android mobile apps. It allows to define multiple apps, to register devices for each app, and to schedule push notifications sending on registered devices, filtered by app and platform type.
The basic extension package includes the jBackend component, that provides the general infrastructure for endpoints, notifications, and plugins support system. Also the following plugins are already included in the basic package:
Additional plugins can be downloaded from here and installed separately. Before to buy a subscription check here if what you need is already available, or submit a support request.
It is also possible to give it a try downloading and installing jBackend Community for free, a lite version created to give a chance to test jBackend capabilities, to develop and test new modules, and to provide some basic REST API integration features to a Joomla site.
jBackend is released under GPL 2.0 license.