lpw
2021-04-20 b19a78b27247f5f0761c35b5b3e8a41876eabb05
commit | author | age
13e53a 1 // Copyright (c) 2014-present, Facebook, Inc. All rights reserved.
H 2 //
3 // You are hereby granted a non-exclusive, worldwide, royalty-free license to use,
4 // copy, modify, and distribute this software in source code or binary form for use
5 // in connection with the web services and APIs provided by Facebook.
6 //
7 // As with any software that integrates with the Facebook platform, your use of
8 // this software is subject to the Facebook Developer Principles and Policies
9 // [http://developers.facebook.com/policy/]. This copyright notice shall be
10 // included in all copies or substantial portions of the software.
11 //
12 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
13 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
14 // FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
15 // COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
16 // IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
17 // CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
18
49b883 19 #import "TargetConditionals.h"
L 20
21 #if !TARGET_OS_TV
22
13e53a 23 #import <Foundation/Foundation.h>
H 24
25 NS_ASSUME_NONNULL_BEGIN
26
27 @class FBSDKAppLink;
28
88188e 29 /**
13e53a 30  Provides a set of utilities for working with NSURLs, such as parsing of query parameters
H 31  and handling for App Link requests.
32  */
e81c27 33 NS_SWIFT_NAME(AppLinkURL)
13e53a 34 @interface FBSDKURL : NSObject
e81c27 35
H 36 - (instancetype)init NS_UNAVAILABLE;
37 + (instancetype)new NS_UNAVAILABLE;
13e53a 38
88188e 39 /**
13e53a 40  Creates a link target from a raw URL.
H 41  On success, this posts the FBSDKAppLinkParseEventName measurement event. If you are constructing the FBSDKURL within your application delegate's
42  application:openURL:sourceApplication:annotation:, you should instead use URLWithInboundURL:sourceApplication:
43  to support better FBSDKMeasurementEvent notifications
44  @param url The instance of `NSURL` to create FBSDKURL from.
45  */
e81c27 46 + (instancetype)URLWithURL:(NSURL *)url
H 47 NS_SWIFT_NAME(init(url:));
13e53a 48
88188e 49 /**
13e53a 50  Creates a link target from a raw URL received from an external application. This is typically called from the app delegate's
H 51  application:openURL:sourceApplication:annotation: and will post the FBSDKAppLinkNavigateInEventName measurement event.
52  @param url The instance of `NSURL` to create FBSDKURL from.
53  @param sourceApplication the bundle ID of the app that is requesting your app to open the URL. The same sourceApplication in application:openURL:sourceApplication:annotation:
54  */
e81c27 55 + (instancetype)URLWithInboundURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication
H 56 NS_SWIFT_NAME(init(inboundURL:sourceApplication:));
13e53a 57
88188e 58 /**
13e53a 59  Gets the target URL.  If the link is an App Link, this is the target of the App Link.
H 60  Otherwise, it is the url that created the target.
61  */
62 @property (nonatomic, strong, readonly) NSURL *targetURL;
63
88188e 64 /**
13e53a 65  Gets the query parameters for the target, parsed into an NSDictionary.
H 66  */
67 @property (nonatomic, strong, readonly) NSDictionary<NSString *, id> *targetQueryParameters;
68
88188e 69 /**
13e53a 70  If this link target is an App Link, this is the data found in al_applink_data.
H 71  Otherwise, it is nil.
72  */
88188e 73 @property (nonatomic, strong, readonly, nullable) NSDictionary<NSString *, id> *appLinkData;
13e53a 74
88188e 75 /**
13e53a 76  If this link target is an App Link, this is the data found in extras.
H 77  */
88188e 78 @property (nonatomic, strong, readonly, nullable) NSDictionary<NSString *, id> *appLinkExtras;
13e53a 79
88188e 80 /**
13e53a 81  The App Link indicating how to navigate back to the referer app, if any.
H 82  */
88188e 83 @property (nonatomic, strong, readonly, nullable) FBSDKAppLink *appLinkReferer;
13e53a 84
88188e 85 /**
13e53a 86  The URL that was used to create this FBSDKURL.
H 87  */
88 @property (nonatomic, strong, readonly) NSURL *inputURL;
89
88188e 90 /**
13e53a 91  The query parameters of the inputURL, parsed into an NSDictionary.
H 92  */
93 @property (nonatomic, strong, readonly) NSDictionary<NSString *, id> *inputQueryParameters;
94
49b883 95 /**
L 96  The flag indicating whether the URL comes from auto app link
97 */
98 @property (nonatomic, readonly, getter=isAutoAppLink) BOOL isAutoAppLink;
99
13e53a 100 @end
H 101
102 NS_ASSUME_NONNULL_END
49b883 103
L 104 #endif