xamarin-macios/src/linkpresentation.cs

109 строки
2.5 KiB
C#

//
// LinkPresentation C# bindings
//
// Authors:
// TJ Lambert <t-anlamb@microsoft.com>
//
// Copyright 2019 Microsoft Corporation All rights reserved.
//
#if MONOMAC
using AppKit;
using UIView = AppKit.NSView;
#else
using UIKit;
#endif
using System;
using CoreGraphics;
using Foundation;
using ObjCRuntime;
#if !NET
using NativeHandle = System.IntPtr;
#endif
namespace LinkPresentation {
[ErrorDomain ("LPErrorDomain")]
[Mac (10,15), iOS (13,0)]
[TV (14,0)]
[Native]
public enum LPErrorCode : long {
Unknown = 1,
MetadataFetchFailed,
MetadataFetchCancelled,
MetadataFetchTimedOut,
}
[Mac (10,15), iOS (13,0)]
[TV (14,0)]
[BaseType (typeof (NSObject))]
interface LPLinkMetadata : NSCopying, NSSecureCoding {
[NullAllowed, Export ("originalURL", ArgumentSemantic.Retain)]
NSUrl OriginalUrl { get; set; }
[NullAllowed, Export ("URL", ArgumentSemantic.Retain)]
NSUrl Url { get; set; }
[NullAllowed, Export ("title", ArgumentSemantic.Copy)]
string Title { get; set; }
[NullAllowed, Export ("iconProvider", ArgumentSemantic.Retain)]
NSItemProvider IconProvider { get; set; }
[NullAllowed, Export ("imageProvider", ArgumentSemantic.Retain)]
NSItemProvider ImageProvider { get; set; }
[NullAllowed, Export ("videoProvider", ArgumentSemantic.Retain)]
NSItemProvider VideoProvider { get; set; }
[NullAllowed, Export ("remoteVideoURL", ArgumentSemantic.Retain)]
NSUrl RemoteVideoUrl { get; set; }
}
[Mac (10,15), iOS (13,0)]
[TV (14,0)]
[BaseType (typeof (UIView))]
interface LPLinkView {
[Export ("initWithFrame:")]
[DesignatedInitializer]
NativeHandle Constructor (CGRect rect);
[Export ("initWithURL:")]
NativeHandle Constructor (NSUrl url);
[Export ("initWithMetadata:")]
NativeHandle Constructor (LPLinkMetadata metadata);
[Export ("metadata", ArgumentSemantic.Copy)]
LPLinkMetadata Metadata { get; set; }
}
[Mac (10,15), iOS (13,0)]
[NoTV]
[BaseType (typeof (NSObject))]
interface LPMetadataProvider {
[Async]
[Export ("startFetchingMetadataForURL:completionHandler:")]
void StartFetchingMetadata (NSUrl url, Action<LPLinkMetadata, NSError> completionHandler);
[Async]
[Mac (12,0), iOS (15,0), MacCatalyst (15,0)]
[Export ("startFetchingMetadataForRequest:completionHandler:")]
void StartFetchingMetadata (NSUrlRequest request, Action<LPLinkMetadata, NSError> completionHandler);
[Export ("cancel")]
void Cancel ();
[Export ("shouldFetchSubresources")]
bool ShouldFetchSubresources { get; set; }
[Export ("timeout")]
double Timeout { get; set; }
}
}