/Cordova-Flic

A Cordova plugin providing access to the Flic SDK

Primary LanguageObjective-C

Cordova-Flic

A Cordova plugin providing access to the Flic SDK (Android and iOS)

Installation

$ cordova plugin add https://github.com/dukhanov/Cordova-Flic --variable URL_SCHEME=mycoolapp

Android

Set android:minSdkVersion="19" or higher in config.xml for the Android

	<preference name="android-minSdkVersion" value="19" />
$ cordova build android

iOS

Set deployment-target=8.0 or higher in config.xml for the iOS

	<preference name="deployment-target" value="8.0" />

Make sure, that you have installed node-xcode version 0.8.7 or higher on your Mac

$ npm i xcode
$ cordova build ios

Plugin API

It has been currently stripped to the minimum needed from a Javascript app.

The following functions are available:

  • Flic.init (config, success, error). Initialize Flic and register known buttons for receiving single click, double click and hold events
    • config:
      • appId: your app client ID
      • appSecret: your app client secret
      • appName: your app name
      • reloadOnFlicEvent: in case you want to start the App via Flic event (Android only, Boolean, default: false)
    • success: called on function success
    • error: called on function error
  • Flic.getKnownButtons(success, error). Get known buttons. Returns the list of buttons grabbed in a previous run of the app
    • success: called on function success
    • error: called on function error
  • Flic.grabButton(success, error). Grab a button and register it for receiving single click, double click and hold events. Returns the grabbed button
    • success: called on function success
    • error: called on function error
  • Flic.onButtonClick(onButtonPressed, onButtonPressedError)
    • onButtonPressed: called when flic button is pressed
    • onButtonPressedError: called when flic button is pressed, but some error has occured

Sample usage code

function successInit(result) {
    console.log('Flic init succeeded');

    // Get known buttons
    Flic.getKnownButtons(
        function(buttons) {
            console.log('Flic getKnownButtons succeeded');
            console.log('Flic known buttons: ' + JSON.stringify(buttons));
        },
        function(message) {
            console.log('Flic getKnownButtons failed: ' + message);
        });
}

function errorInit(message) {
    console.log('Flic init failed: ' + message);
}

function onFlicButtonPressed(result) {
    console.log(result.event); // (String) singleClick or doubleClick or hold
    console.log(result.button.buttonId); // (String)
    console.log(result.button.color); // (String) green
    console.log(result.wasQueued); // (Boolean) If the event was locally queued in the button because it was disconnected. After the connection is completed, the event will be sent with this parameter set to true.
    console.log(result.timeDiff); // (Number) If the event was queued, the timeDiff will be the number of seconds since the event happened.
}

function onFlicButtonPressedError(err){
    console.log(err);
}

var config = {
    appId: 'your app id',
    appSecret: 'your app client secret',
    appName: 'your app name',
    reloadOnFlicEvent: true,
}

// Init flic
Flic.init(config, successInit, errorInit);

// Subscription to button events
Flic.onButtonClick(onFlicButtonPressed, onFlicButtonPressedError)