1 | // Copyright 2015-present 650 Industries. All rights reserved.
|
2 |
|
3 |
|
4 |
|
5 |
|
6 | // Interface for task consumers. Task consumers are the objects that are responsible for handling tasks.
|
7 | // Consumers are getting signals from TaskManager (and service) about a few events that are happening during task's lifecycle.
|
8 |
|
9 | @protocol UMTaskConsumerInterface <NSObject>
|
10 |
|
11 | @property (nonatomic, strong) id<UMTaskInterface> __nullable task;
|
12 |
|
13 | @required
|
14 |
|
15 | /**
|
16 | * The type of the task, like "location" or "geofencing".
|
17 | */
|
18 | - (nonnull NSString *)taskType;
|
19 |
|
20 | /**
|
21 | * Called by UMTaskService when the task is created and associated with the consumer.
|
22 | */
|
23 | - (void)didRegisterTask:(nonnull id<UMTaskInterface>)task;
|
24 |
|
25 | @optional
|
26 |
|
27 | /**
|
28 | * Static method returning boolean value whether the consumer supports launch reason.
|
29 | */
|
30 | + (BOOL)supportsLaunchReason:(UMTaskLaunchReason)launchReason;
|
31 |
|
32 | /**
|
33 | * Version of the consumer. Increase returned number in case of any breaking changes made to the task consumer,
|
34 | * so the existing tasks will be automatically unregistered when the native code gets upgraded.
|
35 | */
|
36 | + (NSUInteger)taskConsumerVersion;
|
37 |
|
38 | /**
|
39 | * Sets options for the task.
|
40 | */
|
41 | - (void)setOptions:(nonnull NSDictionary *)options;
|
42 |
|
43 | /**
|
44 | * Called by UMTaskService to inform the consumer that the associated task is ready to be executed with accompanying data.
|
45 | */
|
46 | - (void)didBecomeReadyToExecuteWithData:(nullable NSDictionary *)data;
|
47 |
|
48 | /**
|
49 | * Called right after the task has been unregistered.
|
50 | */
|
51 | - (void)didUnregister;
|
52 |
|
53 | /**
|
54 | * Called by UMTaskManager when the task has been completed and we received a result from JS app.
|
55 | */
|
56 | - (void)didFinish;
|
57 |
|
58 | /**
|
59 | * Method used to normalize task result that comes from JS app.
|
60 | */
|
61 | - (NSUInteger)normalizeTaskResult:(nullable id)result;
|
62 |
|
63 | @end
|