hank
2018-06-21 ac1a1447b1792f6734121c573449569ecd5830f5
commit | author | age
bad748 1 // Copyright (c) 2014-present, Facebook, Inc. All rights reserved.
W 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
19 #import <Foundation/Foundation.h>
20
21 @class BFTask;
22
23 // Check if Bolts.framework is available for import
24 #if __has_include(<Bolts/BFAppLinkResolving.h>)
25 // Import it if it's available
26 # import <Bolts/BFAppLinkResolving.h>
27 #else
28 // Otherwise - redeclare BFAppLinkResolving protocol to resolve the problem of missing symbols
29 // Please note: Bolts.framework is still required for AppLink resolving to work,
30 // but this allows FBSDKCoreKit to weakly link Bolts.framework as well as this enables clang modulemaps to work.
31
9febd9 32 /**
bad748 33  Implement this protocol to provide an alternate strategy for resolving
W 34  App Links that may include pre-fetching, caching, or querying for App Link
35  data from an index provided by a service provider.
36  */
37 @protocol BFAppLinkResolving <NSObject>
38
9febd9 39 /**
bad748 40  Asynchronously resolves App Link data for a given URL.
W 41
9febd9 42  - Parameter url: The URL to resolve into an App Link.
W 43  - Returns: A BFTask that will return a BFAppLink for the given URL.
bad748 44  */
W 45 - (BFTask *)appLinkFromURLInBackground:(NSURL *)url;
46
47 @end
48
49 #endif
50
9febd9 51 /**
bad748 52
9febd9 53   Provides an implementation of the BFAppLinkResolving protocol that uses the Facebook App Link
bad748 54  Index API to resolve App Links given a URL. It also provides an additional helper method that can resolve
W 55  multiple App Links in a single call.
56
9febd9 57
W 58
bad748 59  Usage of this type requires a client token. See `[FBSDKSettings setClientToken:]` and linking
W 60  Bolts.framework
61  */
62 @interface FBSDKAppLinkResolver : NSObject<BFAppLinkResolving>
63
9febd9 64 /**
W 65   Asynchronously resolves App Link data for multiple URLs.
bad748 66
9febd9 67  - Parameter urls: An array of NSURLs to resolve into App Links.
W 68  - Returns: A BFTask that will return dictionary mapping input NSURLs to their
bad748 69   corresponding BFAppLink.
W 70
9febd9 71
W 72
bad748 73  You should set the client token before making this call. See `[FBSDKSettings setClientToken:]`
W 74  */
75 - (BFTask *)appLinksFromURLsInBackground:(NSArray *)urls;
76
9febd9 77 /**
W 78   Allocates and initializes a new instance of FBSDKAppLinkResolver.
bad748 79  */
W 80 + (instancetype)resolver;
81
82 @end