| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148 |
- /*
- * 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>
- NS_ASSUME_NONNULL_BEGIN
- FOUNDATION_EXPORT NSString *const kFIRDLParameterDeepLinkIdentifier;
- FOUNDATION_EXPORT NSString *const kFIRDLParameterLink;
- FOUNDATION_EXPORT NSString *const kFIRDLParameterMinimumAppVersion;
- FOUNDATION_EXPORT NSString *const kFIRDLParameterCampaign;
- FOUNDATION_EXPORT NSString *const kFIRDLParameterContent;
- FOUNDATION_EXPORT NSString *const kFIRDLParameterMedium;
- FOUNDATION_EXPORT NSString *const kFIRDLParameterTerm;
- FOUNDATION_EXPORT NSString *const kFIRDLParameterSource;
- FOUNDATION_EXPORT NSString *const kFIRDLParameterMatchType;
- FOUNDATION_EXPORT NSString *const kFIRDLParameterInviteId;
- FOUNDATION_EXPORT NSString *const kFIRDLParameterWeakMatchEndpoint;
- FOUNDATION_EXPORT NSString *const kFIRDLParameterMatchMessage;
- FOUNDATION_EXPORT NSString *const kFIRDLParameterRequestIPVersion;
- /**
- * After a Dynamic Link URL is opened in Safari, a cookie is dropped on the domain goo.gl. When a
- * specific URL is used, JavaScript checks if there's a cookie and, if it exists, redirects to the
- * custom-scheme URL stored in it. That causes application:openURL:options: to be called in
- * AppDelegate with the custom-scheme URL. This method creates and returns the URL required to check
- * for the presence of the FDL cookie on goo.gl.
- */
- NSURL *FIRDLCookieRetrievalURL(NSString *urlScheme, NSString *bundleID);
- /**
- * Creates a URL query string from the contents of an NSDictionary. Single-percent-encoded using
- * allowed query characters.
- */
- NSString *FIRDLURLQueryStringFromDictionary(NSDictionary<NSString *, NSString *> *dictionary);
- /**
- * @fn FIRDLDictionaryFromQuery
- * @abstract This receives a URL query parameter string and parses it into a dictionary that
- * represents the query. This method is necessary as |gtm_dictionaryWithHttpArgumentsString:|
- * removes the pluses with spaces and, as a result, cannot be used without first replacing all
- * instances of the plus character with '%2B'.
- * @param queryString The query string of a URL.
- * @return returns a dictionary of type <NSString *, NSString *> that represents the query.
- */
- NSDictionary *FIRDLDictionaryFromQuery(NSString *queryString);
- /**
- * @fn FIRDLDeepLinkURLWithInviteID
- * @abstract A method that takes the given parameters and constructs a url-scheme-based URL that can
- * be opened within the containing app, so that the correct link handlers are fired. This is
- * used after Firebase Dynamic Links either has found a pending deep link, or no link was found.
- * @param inviteID The invitation ID associated with the Dynamic Link. Included in App Invite URLs.
- * @param deepLinkString The deep link, if any, found in the response from a server lookup.
- * @param utmSource The UTM source, if any, found in the response from a server lookup.
- * @param utmMedium The UTM medium, if any, found in the response from a server lookup.
- * @param utmCampaign The UTM campaign, if any, found in the response from a server lookup.
- * @param isWeakLink This value provides information is deep link was weak-matched.
- * @param weakMatchEndpoint This value provides information about which endpoint, IPv4 or IPv6, was
- * used to perform the lookup if weak match is used.
- * @param minAppVersion The minimum app version string, if any, found in the response from a server
- * lookup. If this value is provided, the app developer can use it to determine whether or not
- * to handle the deep link, or to encourage their users to perhaps upgrade their app.
- * @param URLScheme Custom URL scheme of the Application.
- */
- NSURL *FIRDLDeepLinkURLWithInviteID(NSString *_Nullable inviteID,
- NSString *_Nullable deepLinkString,
- NSString *_Nullable utmSource,
- NSString *_Nullable utmMedium,
- NSString *_Nullable utmCampaign,
- NSString *_Nullable utmContent,
- NSString *_Nullable utmTerm,
- BOOL isWeakLink,
- NSString *_Nullable weakMatchEndpoint,
- NSString *_Nullable minAppVersion,
- NSString *URLScheme,
- NSString *_Nullable matchMessage);
- /**
- * @fn FIRDLOSVersionSupported(NSString *systemVersion, NSString *minSupportedVersion)
- * @abstract Determines if the system version is greater than or equal to the minSupportedVersion.
- * @param systemVersion The iOS version to use as the current version in the comparison.
- * @param minSupportedVersion The minimum iOS system version that is supported.
- * @return YES if the system version is greater than or equal to the minimum, othewise, NO.
- */
- BOOL FIRDLOSVersionSupported(NSString *_Nullable systemVersion, NSString *minSupportedVersion);
- /**
- Returns date of the App installation. Return value may be nil in case of failure.
- */
- NSDate *_Nullable FIRDLAppInstallationDate(void);
- /**
- Returns current device model name.
- */
- NSString *FIRDLDeviceModelName(void);
- /**
- Returns current device locale. The method will try to bring locale format to the same format as
- reported by Safari/WebView.
- */
- NSString *FIRDLDeviceLocale(void) __deprecated_msg("Use FIRDeviceLocaleRaw instead");
- /**
- Returns current device locale as reported by iOS.
- */
- NSString *FIRDLDeviceLocaleRaw(void);
- /**
- Returns current device timezone.
- */
- NSString *FIRDLDeviceTimezone(void);
- /**
- Returns is universal link (long FDL link) parsable.
- */
- BOOL FIRDLCanParseUniversalLinkURL(NSURL *_Nullable URL);
- /**
- Return is link matches FDL short link format.
- */
- BOOL FIRDLMatchesShortLinkFormat(NSURL *URL);
- /**
- Returns match type string using server side match type string.
- Returned string can be used as customURLScheme URL with parameter kFIRDLParameterMatchType.
- */
- NSString *FIRDLMatchTypeStringFromServerString(NSString *_Nullable serverMatchTypeString);
- /**
- Add custom domains from the info.plist to the internal allowlist.
- */
- void FIRDLAddToAllowListForCustomDomainsArray(NSArray *customDomains);
- NS_ASSUME_NONNULL_END
|