1 Commits

Author SHA1 Message Date
Nathan Kerr
8f26b4299c Allow the user to set a "large icon"
Need to actually test this.
2019-07-30 13:01:08 -07:00
4 changed files with 8 additions and 9 deletions

View File

@@ -120,14 +120,6 @@ cordova.plugins.backgroundMode.wakeUp();
cordova.plugins.backgroundMode.unlock();
```
### Request to disable battery optimizations
Starting in Android 8, apps can be put to sleep to conserve battery. When this happens (usually after 5 minutes or so), the background task is killed. This will cause things like MQTT connections to break.
This method will show a permission prompt for the user (only if the app hasn't been granted permission) to ignore the optimization.
```js
cordova.plugins.backgroundMode.disableWebViewOptimizations();
```
### 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.

View File

@@ -27,6 +27,7 @@ import android.app.*;
import android.content.Context;
import android.content.Intent;
import android.content.res.Resources;
import android.graphics.BitmapFactory;
import android.graphics.drawable.Icon;
import android.os.Binder;
import android.os.Build;
@@ -189,6 +190,7 @@ public class ForegroundService extends Service {
String text = settings.optString("text", NOTIFICATION_TEXT);
boolean bigText = settings.optBoolean("bigText", false);
String subText = settings.optString("subText", "");
String largeIcon = settings.optString("largeIcon", null);
Context context = getApplicationContext();
String pkgName = context.getPackageName();
@@ -206,6 +208,10 @@ public class ForegroundService extends Service {
notification.setSubText(subText);
}
if (largeIcon != null) {
notification.setLargeIcon(BitmapFactory.decodeResource(getResources(), getIconResId(largeIcon)));
}
if (settings.optBoolean("allowClose", false)) {
final Intent clostAppIntent = new Intent("com.backgroundmode.close" + pkgName);

View File

@@ -222,7 +222,7 @@ NSString* const kAPPBackgroundEventDeactivate = @"deactivate";
NSString* flag = [NSString stringWithFormat:@"%@._isActive=%@;",
kAPPBackgroundJsNamespace, active];
NSString* depFn = [NSString stringWithFormat:@"%@.on('%@');",
NSString* depFn = [NSString stringWithFormat:@"%@.on%@();",
kAPPBackgroundJsNamespace, event];
NSString* fn = [NSString stringWithFormat:@"%@.fireEvent('%@');",

View File

@@ -419,6 +419,7 @@ exports._defaults = {
hidden: true,
color: undefined,
icon: 'icon',
largeIcon: undefined,
channelName: 'cordova-plugin-background-mode',
channelDescription: 'cordova-plugin-background-moden notification',
allowClose: false,