| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134 |
- /*
- * Copyright 2018 Google
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
- #import <Foundation/Foundation.h>
- #import "DynamicLinks/Public/FIRDynamicLinksCommon.h"
- NS_ASSUME_NONNULL_BEGIN
- /** A definition for a block used by methods that are asynchronous and may produce errors. */
- typedef void (^FIRDynamicLinkNetworkingErrorHandler)(NSError *_Nullable error);
- /** A definition for a block used to return a pending Dynamic Link. */
- typedef void (^FIRPostInstallAttributionCompletionHandler)(
- NSDictionary *_Nullable dynamicLinkParameters,
- NSString *_Nullable matchMessage,
- NSError *_Nullable error);
- /** A definition for a block used to return data and errors after an asynchronous task. */
- typedef void (^FIRNetworkRequestCompletionHandler)(NSData *_Nullable data,
- NSError *_Nullable error);
- // these enums must be in sync with google/firebase/dynamiclinks/v1/dynamic_links.proto
- typedef NS_ENUM(NSInteger, FIRDynamicLinkNetworkingUniqueMatchVisualStyle) {
- // Unknown style.
- FIRDynamicLinkNetworkingUniqueMatchVisualStyleUnknown = 0,
- // Default style.
- FIRDynamicLinkNetworkingUniqueMatchVisualStyleDefault = 1,
- // Custom style.
- FIRDynamicLinkNetworkingUniqueMatchVisualStyleCustom = 2,
- };
- typedef NS_ENUM(NSInteger, FIRDynamicLinkNetworkingRetrievalProcessType) {
- // Unknown method.
- FIRDynamicLinkNetworkingRetrievalProcessTypeUnknown = 0,
- // iSDK performs a server lookup using default match in the background
- // when app is first-opened; no API called by developer.
- FIRDynamicLinkNetworkingRetrievalProcessTypeImplicitDefault = 1,
- // iSDK performs a server lookup by device fingerprint upon a dev API call.
- FIRDynamicLinkNetworkingRetrievalProcessTypeExplicitDefault = 2,
- // iSDK performs a unique match only if default match is found upon a dev
- // API call.
- FIRDynamicLinkNetworkingRetrievalProcessTypeOptionalUnique = 3,
- };
- /**
- * @fn FIRMakeHTTPRequest
- * @abstract A basic and simple network request method.
- * @param request The NSURLRequest with which to perform the network request.
- * @param completion The handler executed after the request has completed.
- */
- void FIRMakeHTTPRequest(NSURLRequest *request, FIRNetworkRequestCompletionHandler completion);
- /** The base of the FDL API URL */
- FOUNDATION_EXPORT NSString *const kApiaryRestBaseUrl;
- /**
- * @class FIRDynamicLinkNetworking
- * @abstract The class used to handle all network communications for the the service.
- */
- @interface FIRDynamicLinkNetworking : NSObject
- /**
- * @method initWithAPIKey:clientID:URLScheme:
- * @param clientID Client ID value.
- * @param URLScheme Custom URL scheme of the app.
- * @param APIKey API Key value.
- */
- - (instancetype)initWithAPIKey:(NSString *)APIKey
- clientID:(NSString *)clientID
- URLScheme:(NSString *)URLScheme NS_DESIGNATED_INITIALIZER;
- - (instancetype)init NS_UNAVAILABLE;
- /**
- * @method resolveShortLink:URLScheme:APIKey:completion:
- * @abstract Retrieves the details of the durable link that the shortened URL represents
- * @param url A Short Dynamic Link.
- * @param completion Block to be run upon completion.
- */
- - (void)resolveShortLink:(NSURL *)url
- FDLSDKVersion:(NSString *)FDLSDKVersion
- completion:(FIRDynamicLinkResolverHandler)completion;
- /**
- * @method
- * retrievePendingDynamicLinkWithIOSVersion:resolutionHeight:resolutionWidth:locale:localeRaw:timezone:modelName:FDLSDKVersion:appInstallationDate:uniqueMatchVisualStyle:retrievalProcessType:handler:
- * @abstract Retrieves a pending link from the server using the supplied device info and returns it
- * by executing the completion handler.
- */
- - (void)retrievePendingDynamicLinkWithIOSVersion:(NSString *)IOSVersion
- resolutionHeight:(NSInteger)resolutionHeight
- resolutionWidth:(NSInteger)resolutionWidth
- locale:(NSString *)locale
- localeRaw:(NSString *)localeRaw
- localeFromWebView:(NSString *)localeFromWebView
- timezone:(NSString *)timezone
- modelName:(NSString *)modelName
- FDLSDKVersion:(NSString *)FDLSDKVersion
- appInstallationDate:(NSDate *_Nullable)appInstallationDate
- uniqueMatchVisualStyle:
- (FIRDynamicLinkNetworkingUniqueMatchVisualStyle)uniqueMatchVisualStyle
- retrievalProcessType:
- (FIRDynamicLinkNetworkingRetrievalProcessType)retrievalProcessType
- uniqueMatchLinkToCheck:(NSURL *)uniqueMatchLinkToCheck
- handler:
- (FIRPostInstallAttributionCompletionHandler)handler;
- /**
- * @method convertInvitation:handler:
- * @abstract Marks an invitation as converted. You should call this method in your application after
- * the user performs an action that represents a successful conversion.
- * @param invitationID The invitation ID of the link.
- * @param handler A block that is called upon completion. If successful, the error parameter will be
- * nil. This is always executed on the main thread.
- */
- - (void)convertInvitation:(NSString *)invitationID
- handler:(nullable FIRDynamicLinkNetworkingErrorHandler)handler;
- @end
- NS_ASSUME_NONNULL_END
|