115 строки
2.9 KiB
C#
115 строки
2.9 KiB
C#
//
|
|
// BackgroundTasks C# bindings
|
|
//
|
|
// Authors:
|
|
// Manuel de la Pena Saenz <mandel@microsoft.com>
|
|
//
|
|
// Copyright 2019 Microsoft Corporation All rights reserved.
|
|
//
|
|
using System;
|
|
|
|
using CoreFoundation;
|
|
using Foundation;
|
|
using ObjCRuntime;
|
|
|
|
#if !NET
|
|
using NativeHandle = System.IntPtr;
|
|
#endif
|
|
|
|
namespace BackgroundTasks {
|
|
|
|
[TV (13, 0), NoWatch, NoMac, iOS (13, 0)]
|
|
[MacCatalyst (13, 1)]
|
|
[BaseType (typeof (BGTaskRequest))]
|
|
[DisableDefaultCtor]
|
|
interface BGAppRefreshTaskRequest {
|
|
[Export ("initWithIdentifier:")]
|
|
NativeHandle Constructor (string identifier);
|
|
}
|
|
|
|
[TV (13, 0), NoWatch, NoMac, iOS (13, 0)]
|
|
[MacCatalyst (13, 1)]
|
|
[BaseType (typeof (BGTaskRequest))]
|
|
[DisableDefaultCtor]
|
|
interface BGProcessingTaskRequest {
|
|
[Export ("initWithIdentifier:")]
|
|
NativeHandle Constructor (string identifier);
|
|
|
|
[Export ("requiresNetworkConnectivity")]
|
|
bool RequiresNetworkConnectivity { get; set; }
|
|
|
|
[Export ("requiresExternalPower")]
|
|
bool RequiresExternalPower { get; set; }
|
|
}
|
|
|
|
[Abstract]
|
|
[TV (13, 0), NoWatch, NoMac, iOS (13, 0)]
|
|
[MacCatalyst (13, 1)]
|
|
[BaseType (typeof (NSObject))]
|
|
[DisableDefaultCtor]
|
|
interface BGTaskRequest : NSCopying {
|
|
[Export ("identifier")]
|
|
string Identifier { get; }
|
|
|
|
[NullAllowed, Export ("earliestBeginDate", ArgumentSemantic.Copy)]
|
|
NSDate EarliestBeginDate { get; set; }
|
|
}
|
|
|
|
[TV (13, 0), NoWatch, NoMac, iOS (13, 0)]
|
|
[MacCatalyst (13, 1)]
|
|
[BaseType (typeof (NSObject))]
|
|
[DisableDefaultCtor]
|
|
interface BGTask {
|
|
[Export ("identifier")]
|
|
string Identifier { get; }
|
|
|
|
[NullAllowed, Export ("expirationHandler", ArgumentSemantic.Strong)]
|
|
Action ExpirationHandler { get; set; }
|
|
|
|
[Export ("setTaskCompletedWithSuccess:")]
|
|
void SetTaskCompleted (bool success);
|
|
}
|
|
|
|
[TV (13, 0), NoWatch, NoMac, iOS (13, 0)]
|
|
[MacCatalyst (13, 1)]
|
|
[BaseType (typeof (BGTask))]
|
|
[DisableDefaultCtor]
|
|
interface BGAppRefreshTask {
|
|
}
|
|
|
|
[TV (13, 0), NoWatch, NoMac, iOS (13, 0)]
|
|
[MacCatalyst (13, 1)]
|
|
[BaseType (typeof (BGTask))]
|
|
[DisableDefaultCtor]
|
|
interface BGProcessingTask {
|
|
}
|
|
|
|
[TV (13, 0), NoWatch, NoMac, iOS (13, 0)]
|
|
[MacCatalyst (13, 1)]
|
|
[BaseType (typeof (NSObject))]
|
|
[DisableDefaultCtor]
|
|
interface BGTaskScheduler {
|
|
[Static]
|
|
[Export ("sharedScheduler", ArgumentSemantic.Strong)]
|
|
BGTaskScheduler Shared { get; }
|
|
|
|
[Advice ("This API is not available when using iOS App Extensions.")]
|
|
[Export ("registerForTaskWithIdentifier:usingQueue:launchHandler:")]
|
|
bool Register (string identifier, [NullAllowed] DispatchQueue queue, Action<BGTask> launchHandler);
|
|
|
|
[Export ("submitTaskRequest:error:")]
|
|
bool Submit (BGTaskRequest taskRequest, [NullAllowed] out NSError error);
|
|
|
|
[Export ("cancelTaskRequestWithIdentifier:")]
|
|
void Cancel (string identifier);
|
|
|
|
[Export ("cancelAllTaskRequests")]
|
|
void CancelAll ();
|
|
|
|
[Async]
|
|
[Export ("getPendingTaskRequestsWithCompletionHandler:")]
|
|
void GetPending (Action<BGTaskRequest []> completionHandler);
|
|
}
|
|
|
|
}
|