All Projects → katzer → Cordova Plugin Background Mode

katzer / Cordova Plugin Background Mode

Licence: apache-2.0
Keep app running in background

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to Cordova Plugin Background Mode

cordova-plugin-background-upload
Cordova plugin for background upload
Stars: ✭ 47 (-96.4%)
Mutual labels:  cordova, background
cordova-plugin-apkupdater
This plugin allows your Android app to download and install compressed updates without the Google Play Store.
Stars: ✭ 46 (-96.48%)
Mutual labels:  cordova, background
Cordova Background Geolocation Lt
The most sophisticated background location-tracking & geofencing module with battery-conscious motion-detection intelligence for iOS and Android.
Stars: ✭ 600 (-54.06%)
Mutual labels:  background, cordova
Cordova Plugin Camera Preview Sample App
cordova-plugin-camera-preview Sample App
Stars: ✭ 76 (-94.18%)
Mutual labels:  cordova
Xgpush Cordova
腾讯信鸽推送 for Cordova
Stars: ✭ 78 (-94.03%)
Mutual labels:  cordova
Phaser Es6 Webpack
A bootstrap project for create games with Phaser + ES6 + Webpack.
Stars: ✭ 1,266 (-3.06%)
Mutual labels:  cordova
Cordova Plugin Remote Injection
DEPRECATED: Cordova plugin to allow a remote site to interact with cordova's javascript APIs when loaded within a cordova app.
Stars: ✭ 90 (-93.11%)
Mutual labels:  cordova
Cordova Plugin Wechat
A cordova plugin, a JS version of Wechat SDK
Stars: ✭ 1,198 (-8.27%)
Mutual labels:  cordova
Hfswipeview
Infinite Swipe View for iOS written in Swift
Stars: ✭ 89 (-93.19%)
Mutual labels:  infinite
Phaser Ads
A Phaser plugin for providing nice ads integration in your phaser.io game
Stars: ✭ 84 (-93.57%)
Mutual labels:  cordova
Lowpoly
Lowpoly image generator
Stars: ✭ 83 (-93.64%)
Mutual labels:  background
Framework7 Template Vue Simple
Deprecated! Simple Framework7 Vue starter app template in a single HTML file
Stars: ✭ 81 (-93.8%)
Mutual labels:  cordova
Httptransfertasks
Cross Platform HTTP Transfers for downloading and uploading (supports background operations)
Stars: ✭ 87 (-93.34%)
Mutual labels:  background
Sentry Wizard
Sentry Project Setup Wizard
Stars: ✭ 78 (-94.03%)
Mutual labels:  cordova
Imlazy
😴 Functional programming with lazy immutable iterables
Stars: ✭ 89 (-93.19%)
Mutual labels:  infinite
Framework7 Cli
Framework7 command line utility
Stars: ✭ 76 (-94.18%)
Mutual labels:  cordova
Bitnfc
Bitcoin NFC Android Mobile Wallet - JS + Ionic + Cordova + Bitcore + Blockchain.info API + Cordova NFC plugin
Stars: ✭ 88 (-93.26%)
Mutual labels:  cordova
Yii2 Console Runner Extension
An extension for running console commands on background in Yii framework.
Stars: ✭ 83 (-93.64%)
Mutual labels:  background
Infinite Uicollectionview
Make a UICollectionView infinitely scrolling by looping through content
Stars: ✭ 82 (-93.72%)
Mutual labels:  infinite
Docker Ionic
🎢 Docker image for Ionic (with Android & Cordova)
Stars: ✭ 85 (-93.49%)
Mutual labels:  cordova

SAMPLE APP 👉

Cordova Background Plugin npm version Build Status codebeat badge

Plugin for the Cordova framework to perform infinite background execution.

Most mobile operating systems are multitasking capable, but most apps dont need to run while in background and not present for the user. Therefore they pause the app in background mode and resume the app before switching to foreground mode. The system keeps all network connections open while in background, but does not deliver the data until the app resumes.

Store Compliance

Infinite background tasks are not official supported on most mobile operation systems and thus not compliant with public store vendors. A successful submssion isn't garanteed.

Use the plugin by your own risk!

Supported Platforms

  • Android/Amazon FireOS
  • Browser
  • iOS
  • Windows (see #222)

Installation

The plugin can be installed via Cordova-CLI and is publicly available on NPM.

Execute from the projects root folder:

$ cordova plugin add cordova-plugin-background-mode

Or install a specific version:

$ cordova plugin add [email protected]

Or install the latest head version:

$ cordova plugin add https://github.com/katzer/cordova-plugin-background-mode.git

Or install from local source:

$ cordova plugin add cordova-plugin-background-mode --searchpath <path>

Usage

The plugin creates the object cordova.plugins.backgroundMode and is accessible after the deviceready event has been fired.

document.addEventListener('deviceready', function () {
    // cordova.plugins.backgroundMode is now available
}, false);

Enable the background mode

The plugin is not enabled by default. Once it has been enabled the mode becomes active if the app moves to background.

cordova.plugins.backgroundMode.enable();
// or
cordova.plugins.backgroundMode.setEnabled(true);

To disable the background mode:

cordova.plugins.backgroundMode.disable();
// or
cordova.plugins.backgroundMode.setEnabled(false);

Check if running in background

Once the plugin has been enabled and the app has entered the background, the background mode becomes active.

cordova.plugins.backgroundMode.isActive(); // => boolean

A non-active mode means that the app is in foreground.

Listen for events

The plugin fires an event each time its status has been changed. These events are enable, disable, activate, deactivate and failure.

cordova.plugins.backgroundMode.on('EVENT', function);

To remove an event listeners:

cordova.plugins.backgroundMode.un('EVENT', function);

Android specifics

Transit between application states

Android allows to programmatically move from foreground to background or vice versa.

cordova.plugins.backgroundMode.moveToBackground();
// or
cordova.plugins.backgroundMode.moveToForeground();

Back button

Override the back button on Android to go to background instead of closing the app.

cordova.plugins.backgroundMode.overrideBackButton();

Recent task list

Exclude the app from the recent task list works on Android 5.0+.

cordova.plugins.backgroundMode.excludeFromTaskList();

Detect screen status

The method works async instead of isActive() or isEnabled().

cordova.plugins.backgroundMode.isScreenOff(function(bool) {
    ...
});

Unlock and wake-up

A wake-up turns on the screen while unlocking moves the app to foreground even the device is locked.

// Turn screen on
cordova.plugins.backgroundMode.wakeUp();
// Turn screen on and show app even locked
cordova.plugins.backgroundMode.unlock();

Notification

To indicate that the app is executing tasks in background and being paused would disrupt the user, the plug-in has to create a notification while in background - like a download progress bar.

Override defaults

The title, text and icon for that notification can be customized as below. Also, by default the app will come to foreground when tapping on the notification. That can be changed by setting resume to false. On Android 5.0+, the color option will set the background color of the notification circle. Also on Android 5.0+, setting hidden to false will make the notification visible on lockscreen.

cordova.plugins.backgroundMode.setDefaults({
    title: String,
    text: String,
    icon: 'icon' // this will look for icon.png in platforms/android/res/drawable|mipmap
    color: String // hex format like 'F14F4D'
    resume: Boolean,
    hidden: Boolean,
    bigText: Boolean
})

To modify the currently displayed notification

cordova.plugins.backgroundMode.configure({ ... });

Note: All properties are optional - only override the things you need to.

Run in background without notification

In silent mode the plugin will not display a notification - which is not the default. Be aware that Android recommends adding a notification otherwise the OS may pause the app.

cordova.plugins.backgroundMode.setDefaults({ silent: true });

Quirks

Various APIs like playing media or tracking GPS position in background might not work while in background even the background mode is active. To fix such issues the plugin provides a method to disable most optimizations done by Android/CrossWalk.

cordova.plugins.backgroundMode.on('activate', function() {
   cordova.plugins.backgroundMode.disableWebViewOptimizations(); 
});

Note: Calling the method led to increased resource and power consumption.

Contributing

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request

License

This software is released under the Apache 2.0 License.

Made with 😋 from Leipzig

? 2017 appPlant GmbH & meshfields

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].