lpw
2021-01-26 49b8839fda3439edc31581527e84036e58f55f0f
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 <UIKit/UIKit.h>
H 24
25 #import "FBSDKAppLinkReturnToRefererView.h"
26
27 NS_ASSUME_NONNULL_BEGIN
28
29 @class FBSDKAppLink;
30 @class FBSDKAppLinkReturnToRefererController;
31
88188e 32 /**
13e53a 33  Protocol that a class can implement in order to be notified when the user has navigated back
H 34  to the referer of an App Link.
35  */
e81c27 36 NS_SWIFT_NAME(AppLinkReturnToRefererControllerDelegate)
13e53a 37 @protocol FBSDKAppLinkReturnToRefererControllerDelegate <NSObject>
H 38
39 @optional
40
88188e 41 /** Called when the user has tapped to navigate, but before the navigation has been performed. */
13e53a 42 - (void)returnToRefererController:(FBSDKAppLinkReturnToRefererController *)controller
e81c27 43             willNavigateToAppLink:(FBSDKAppLink *)appLink
H 44 NS_SWIFT_NAME(return(to:willNavigateTo:));
13e53a 45
88188e 46 /** Called after the navigation has been attempted, with an indication of whether the referer
13e53a 47  app link was successfully opened. */
H 48 - (void)returnToRefererController:(FBSDKAppLinkReturnToRefererController *)controller
49              didNavigateToAppLink:(FBSDKAppLink *)url
e81c27 50                              type:(FBSDKAppLinkNavigationType)type
H 51 NS_SWIFT_NAME(return(to:didNavigateTo:type:));
13e53a 52
H 53 @end
54
88188e 55 /**
13e53a 56  A controller class that implements default behavior for a FBSDKAppLinkReturnToRefererView, including
H 57  the ability to display the view above the navigation bar for navigation-based apps.
58  */
59 NS_EXTENSION_UNAVAILABLE_IOS("Not available in app extension")
e81c27 60 NS_SWIFT_NAME(AppLinkReturnToRefererController)
13e53a 61 @interface FBSDKAppLinkReturnToRefererController : NSObject <FBSDKAppLinkReturnToRefererViewDelegate>
H 62
88188e 63 /**
13e53a 64  The delegate that will be notified when the user navigates back to the referer.
H 65  */
66 @property (nonatomic, weak, nullable) id<FBSDKAppLinkReturnToRefererControllerDelegate> delegate;
67
88188e 68 /**
13e53a 69  The FBSDKAppLinkReturnToRefererView this controller is controlling.
H 70  */
71 @property (nonatomic, strong) FBSDKAppLinkReturnToRefererView *view;
72
88188e 73 /**
13e53a 74  Initializes a controller suitable for controlling a FBSDKAppLinkReturnToRefererView that is to be displayed
H 75  contained within another UIView (i.e., not displayed above the navigation bar).
76  */
77 - (instancetype)init NS_DESIGNATED_INITIALIZER;
78
88188e 79 /**
13e53a 80  Initializes a controller suitable for controlling a FBSDKAppLinkReturnToRefererView that is to be displayed
H 81  displayed above the navigation bar.
e81c27 82
H 83  @param navController The Navigation Controller for display above
13e53a 84  */
e81c27 85 - (instancetype)initForDisplayAboveNavController:(UINavigationController *)navController
H 86 NS_SWIFT_NAME(init(navController:));
13e53a 87
88188e 88 /**
13e53a 89  Removes the view entirely from the navigation controller it is currently displayed in.
H 90  */
91 - (void)removeFromNavController;
92
88188e 93 /**
13e53a 94  Shows the FBSDKAppLinkReturnToRefererView with the specified referer information. If nil or missing data,
H 95  the view will not be displayed. */
e81c27 96 - (void)showViewForRefererAppLink:(FBSDKAppLink *)refererAppLink
H 97 NS_SWIFT_NAME(showView(forReferer:));
13e53a 98
88188e 99 /**
13e53a 100  Shows the FBSDKAppLinkReturnToRefererView with referer information extracted from the specified URL.
H 101  If nil or missing referer App Link data, the view will not be displayed. */
e81c27 102 - (void)showViewForRefererURL:(NSURL *)url
H 103 NS_SWIFT_NAME(showView(forReferer:));
13e53a 104
88188e 105 /**
13e53a 106  Closes the view, possibly animating it.
H 107  */
108 - (void)closeViewAnimated:(BOOL)animated;
109
110 @end
111
112 NS_ASSUME_NONNULL_END
49b883 113
L 114 #endif