Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Cordova Background Services Plugin
Java JavaScript
branch: master

README.md

cbsp

Cordova Background Services Plugin based on https://github.com/Red-Folder/Cordova-Plugin-BackgroundService, A plugin (and framework code) that allows the development and operation of an Android Background Service.

The example MyService Background Service will write a Hello message to the LogCat every minute. The MyService is designed as sample code.

Once installed you will need to edit the com.red_folder.phonegap.plugin.backgroundservice.MyService.java file to make changes.

If you find the Background Service Plugin useful then spread the love. https://github.com/Red-Folder/Cordova-Plugin-BackgroundService#spread-the-love

See

Change in the example index.html the following line

var myService = cordova.require('cordova/plugin/myService');

to

var myService = cordova.require('com.red_folder.phonegap.plugin.backgroundservice.BackgroundService');

Example::

<!DOCTYPE HTML>
<!--
/*
 * Copyright 2013 Red Folder Consultancy Ltd
 *   
 * Licensed under the Apache License, Version 2.0 (the "License");   
 * you may not use this file except in compliance with the License.   
 * You may obtain a copy of the License at       
 * 
 *  http://www.apache.org/licenses/LICENSE-2.0   
 *
 * Unless required by applicable law or agreed to in writing, software   
 * distributed under the License is distributed on an "AS IS" BASIS,   
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.   
 * See the License for the specific language governing permissions and   
 * limitations under the License.
 */
-->
<html>
    <head>
        <title>MyService V3.1.0</title>

        <script type="text/javascript" charset="utf-8" src="cordova.js"></script>
        <script type="text/javascript" charset="utf-8" src="backgroundService-3.1.0.js"></script>
        <script type="text/javascript">
            /*
             * Copyright 2013 Red Folder Consultancy Ltd
             *   
             * Licensed under the Apache License, Version 2.0 (the "License");   
             * you may not use this file except in compliance with the License.   
             * You may obtain a copy of the License at       
             * 
             *  http://www.apache.org/licenses/LICENSE-2.0   
             *
             * Unless required by applicable law or agreed to in writing, software   
             * distributed under the License is distributed on an "AS IS" BASIS,   
             * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.   
             * See the License for the specific language governing permissions and   
             * limitations under the License.
             */




        </script>

        <script type="text/javascript" >

            var myService = cordova.require('com.red_folder.phonegap.plugin.backgroundservice.BackgroundService');



            document.addEventListener('deviceready', function() {
                getStatus();
            }, true);

            function handleSuccess(data) {
                updateView(data);
            }

            function handleError(data) {
                alert("Error: " + data.ErrorMessage);
                alert(JSON.stringify(data));
                updateView(data);
            }

            /*
             * Button Handlers
             */
            function getStatus() {
                myService.getStatus(function(r) {
                    handleSuccess(r)
                },
                        function(e) {
                            handleError(e)
                        });
            }
            ;

            function startService() {
                myService.startService(function(r) {
                    handleSuccess(r)
                },
                        function(e) {
                            handleError(e)
                        });
            }

            function stopService() {
                myService.stopService(function(r) {
                    handleSuccess(r)
                },
                        function(e) {
                            handleError(e)
                        });
            }

            function enableTimer() {
                myService.enableTimer(60000,
                        function(r) {
                            handleSuccess(r)
                        },
                        function(e) {
                            handleError(e)
                        });
            }

            function disableTimer() {
                myService.disableTimer(function(r) {
                    handleSuccess(r)
                },
                        function(e) {
                            handleError(e)
                        });
            }
            ;

            function registerForBootStart() {
                myService.registerForBootStart(function(r) {
                    handleSuccess(r)
                },
                        function(e) {
                            handleError(e)
                        });
            }

            function deregisterForBootStart() {
                myService.deregisterForBootStart(function(r) {
                    handleSuccess(r)
                },
                        function(e) {
                            handleError(e)
                        });
            }

            function registerForUpdates() {
                myService.registerForUpdates(function(r) {
                    handleSuccess(r)
                },
                        function(e) {
                            handleError(e)
                        });
            }

            function deregisterForUpdates() {
                myService.deregisterForUpdates(function(r) {
                    handleSuccess(r)
                },
                        function(e) {
                            handleError(e)
                        });
            }

            function setConfig() {
                var helloToTxt = document.getElementById("helloToTxt");
                var helloToString = helloToTxt.value;
                var config = {
                    "HelloTo": helloToString
                };
                myService.setConfiguration(config,
                        function(r) {
                            handleSuccess(r)
                        },
                        function(e) {
                            handleError(e)
                        });
            }

            /*
             * View logic
             */
            function updateView(data) {

                console.log("UPDATE VIEW CALLED!!!!");

                var serviceBtn = document.getElementById("toggleService");
                var timerBtn = document.getElementById("toggleTimer");
                var bootBtn = document.getElementById("toggleBoot");
                var listenBtn = document.getElementById("toggleListen");
                var updateBtn = document.getElementById("updateBtn");
                var refreshBtn = document.getElementById("refreshBtn");

                var serviceStatus = document.getElementById("serviceStatus");
                var timerStatus = document.getElementById("timerStatus");
                var bootStatus = document.getElementById("bootStatus");
                var listenStatus = document.getElementById("listenStatus");

                serviceBtn.disabled = false;
                if (data.ServiceRunning) {
                    serviceStatus.innerHTML = "Running";
                    serviceBtn.onclick = stopService;
                    timerBtn.disabled = false;
                    if (data.TimerEnabled) {
                        timerStatus.innerHTML = "Enabled";
                        timerBtn.onclick = disableTimer;
                    } else {
                        timerStatus.innerHTML = "Disabled";
                        timerBtn.onclick = enableTimer;
                    }

                    updateBtn.disabled = false;
                    updateBtn.onclick = setConfig;

                    refreshBtn.disabled = false;
                    refreshBtn.onclick = getStatus;

                } else {
                    serviceStatus.innerHTML = "Not running";
                    serviceBtn.onclick = startService;
                    timerBtn.disabled = true;
                    timerEnabled = false;

                    updateBtn.disabled = true;
                    refreshBtn.disabled = true;
                }

                bootBtn.disabled = false;
                if (data.RegisteredForBootStart) {
                    bootStatus.innerHTML = "Registered";
                    bootBtn.onclick = deregisterForBootStart;
                } else {
                    bootStatus.innerHTML = "Not registered";
                    bootBtn.onclick = registerForBootStart;
                }

                listenBtn.disabled = false;
                if (data.RegisteredForUpdates) {
                    listenStatus.innerHTML = "Registered";
                    listenBtn.onclick = deregisterForUpdates;
                } else {
                    listenStatus.innerHTML = "Not registered";
                    listenBtn.onclick = registerForUpdates;
                }

                if (data.Configuration != null)
                {
                    try {
                        var helloToTxt = document.getElementById("helloToTxt");
                        helloToTxt.value = data.Configuration.HelloTo;
                    } catch (err) {
                    }
                }

                if (data.LatestResult != null)
                {
                    try {
                        var resultMessage = document.getElementById("resultMessage");
                        resultMessage.innerHTML = data.LatestResult.Message;
                    } catch (err) {
                    }
                }
            }

        </script>

    </head>

    <body>
        <h1>MyService V3.1.0</h1>

        <table>
            <tr>
                <th>Service</th>
                <td><div id="serviceStatus"></div></td>
                <td><input disabled id="toggleService" type="button" value="toggle"/></td>
            </tr>
            <tr>
                <th>Timer</th>
                <td><div id="timerStatus"></div></td>
                <td><input disabled id="toggleTimer" type="button" value="toggle"/></td>
            </tr>
            <tr>
                <th>Boot</th>
                <td><div id="bootStatus"></div></td>
                <td><input disabled id="toggleBoot" type="button" value="toggle"/></td>
            </tr>
            <tr>
                <th>Listen</th>
                <td><div id="listenStatus"></div></td>
                <td><input disabled id="toggleListen" type="button" value="toggle"/></td>
            </tr>

            <tr>
                <th colspan=3 align="center">Configuration</th>
            </tr>
            <tr>
                <th align="left">Hello To</th>
                <td colspan=2 align="center"><input id="helloToTxt" type="Text"/></td>
            </tr>
            <tr>
                <td colspan=3 align="center"><input disabled id="updateBtn" type="button" value="Update Config"/></td>
            </tr>

            <tr>
                <th colspan=3 align="center">Latest Result</th>
            </tr>

            <tr>
                <td colspan=3 align="center"><div id="resultMessage"></div></td>
            </tr>

            <tr>
                <td colspan=3 align="center"><input disabled id="refreshBtn" type="button" value="Refresh"/></td>
            </tr>

        </table>

    </body>
</html>

Support: The code is all taken from https://github.com/Red-Folder/Cordova-Plugin-BackgroundService and is theirs, We will offer support where possible however we have simply wrapped the code to allow for it to work within the cordova CLI.

Something went wrong with that request. Please try again.