lipengwei
2019-09-26 88188ea7992a90e66db694e9fc1b304a59608044
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
// Copyright (c) 2014-present, Facebook, Inc. All rights reserved.
//
// You are hereby granted a non-exclusive, worldwide, royalty-free license to use,
// copy, modify, and distribute this software in source code or binary form for use
// in connection with the web services and APIs provided by Facebook.
//
// As with any software that integrates with the Facebook platform, your use of
// this software is subject to the Facebook Developer Principles and Policies
// [http://developers.facebook.com/policy/]. This copyright notice shall be
// included in all copies or substantial portions of the software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 
#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
 
#import "FBSDKAppLinkReturnToRefererView.h"
 
NS_ASSUME_NONNULL_BEGIN
 
@class FBSDKAppLink;
@class FBSDKAppLinkReturnToRefererController;
 
/**
 Protocol that a class can implement in order to be notified when the user has navigated back
 to the referer of an App Link.
 */
NS_SWIFT_NAME(AppLinkReturnToRefererControllerDelegate)
@protocol FBSDKAppLinkReturnToRefererControllerDelegate <NSObject>
 
@optional
 
/** Called when the user has tapped to navigate, but before the navigation has been performed. */
- (void)returnToRefererController:(FBSDKAppLinkReturnToRefererController *)controller
            willNavigateToAppLink:(FBSDKAppLink *)appLink
NS_SWIFT_NAME(return(to:willNavigateTo:));
 
/** Called after the navigation has been attempted, with an indication of whether the referer
 app link was successfully opened. */
- (void)returnToRefererController:(FBSDKAppLinkReturnToRefererController *)controller
             didNavigateToAppLink:(FBSDKAppLink *)url
                             type:(FBSDKAppLinkNavigationType)type
NS_SWIFT_NAME(return(to:didNavigateTo:type:));
 
@end
 
/**
 A controller class that implements default behavior for a FBSDKAppLinkReturnToRefererView, including
 the ability to display the view above the navigation bar for navigation-based apps.
 */
NS_EXTENSION_UNAVAILABLE_IOS("Not available in app extension")
NS_SWIFT_NAME(AppLinkReturnToRefererController)
@interface FBSDKAppLinkReturnToRefererController : NSObject <FBSDKAppLinkReturnToRefererViewDelegate>
 
/**
 The delegate that will be notified when the user navigates back to the referer.
 */
@property (nonatomic, weak, nullable) id<FBSDKAppLinkReturnToRefererControllerDelegate> delegate;
 
/**
 The FBSDKAppLinkReturnToRefererView this controller is controlling.
 */
@property (nonatomic, strong) FBSDKAppLinkReturnToRefererView *view;
 
/**
 Initializes a controller suitable for controlling a FBSDKAppLinkReturnToRefererView that is to be displayed
 contained within another UIView (i.e., not displayed above the navigation bar).
 */
- (instancetype)init NS_DESIGNATED_INITIALIZER;
 
/**
 Initializes a controller suitable for controlling a FBSDKAppLinkReturnToRefererView that is to be displayed
 displayed above the navigation bar.
 
 @param navController The Navigation Controller for display above
 */
- (instancetype)initForDisplayAboveNavController:(UINavigationController *)navController
NS_SWIFT_NAME(init(navController:));
 
/**
 Removes the view entirely from the navigation controller it is currently displayed in.
 */
- (void)removeFromNavController;
 
/**
 Shows the FBSDKAppLinkReturnToRefererView with the specified referer information. If nil or missing data,
 the view will not be displayed. */
- (void)showViewForRefererAppLink:(FBSDKAppLink *)refererAppLink
NS_SWIFT_NAME(showView(forReferer:));
 
/**
 Shows the FBSDKAppLinkReturnToRefererView with referer information extracted from the specified URL.
 If nil or missing referer App Link data, the view will not be displayed. */
- (void)showViewForRefererURL:(NSURL *)url
NS_SWIFT_NAME(showView(forReferer:));
 
/**
 Closes the view, possibly animating it.
 */
- (void)closeViewAnimated:(BOOL)animated;
 
@end
 
NS_ASSUME_NONNULL_END