mirror of
https://bitbucket.org/vendoo/vendoo_v1.0.git
synced 2025-12-26 04:07:40 +00:00
142 lines
4.7 KiB
Objective-C
142 lines
4.7 KiB
Objective-C
//
|
|
// Copyright (c) 2015 Google Inc.
|
|
//
|
|
// 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 "AppDelegate.h"
|
|
// [START import]
|
|
@import FirebaseDynamicLinks;
|
|
// [END import]
|
|
|
|
@import Firebase;
|
|
|
|
static NSString *const CUSTOM_URL_SCHEME = @"dlscheme";
|
|
|
|
@implementation AppDelegate
|
|
|
|
// [START didfinishlaunching]
|
|
- (BOOL)application:(UIApplication *)application
|
|
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
|
|
// Set deepLinkURLScheme to the custom URL scheme you defined in your
|
|
// Xcode project.
|
|
[FIROptions defaultOptions].deepLinkURLScheme = CUSTOM_URL_SCHEME;
|
|
[FIRApp configure];
|
|
|
|
return YES;
|
|
}
|
|
// [END didfinishlaunching]
|
|
|
|
// [START openurl]
|
|
- (BOOL)application:(UIApplication *)app
|
|
openURL:(NSURL *)url
|
|
options:(NSDictionary<NSString *, id> *)options {
|
|
return [self application:app openURL:url sourceApplication:nil annotation:@{}];
|
|
}
|
|
|
|
- (BOOL)application:(UIApplication *)application
|
|
openURL:(NSURL *)url
|
|
sourceApplication:(NSString *)sourceApplication
|
|
annotation:(id)annotation {
|
|
FIRDynamicLink *dynamicLink =
|
|
[[FIRDynamicLinks dynamicLinks] dynamicLinkFromCustomSchemeURL:url];
|
|
|
|
if (dynamicLink) {
|
|
// Handle the deep link. For example, show the deep-linked content or
|
|
// apply a promotional offer to the user's account.
|
|
// [START_EXCLUDE]
|
|
// In this sample, we just open an alert.
|
|
NSString *message = [self generateDynamicLinkMessage:dynamicLink];
|
|
[self showDeepLinkAlertViewWithMessage:message];
|
|
// [END_EXCLUDE]
|
|
return YES;
|
|
}
|
|
|
|
// [START_EXCLUDE silent]
|
|
// Show the deep link that the app was called with.
|
|
[self showDeepLinkAlertViewWithMessage:[NSString stringWithFormat:@"openURL:\n%@", url]];
|
|
// [END_EXCLUDE]
|
|
return NO;
|
|
}
|
|
// [END openurl]
|
|
|
|
// [START continueuseractivity]
|
|
- (BOOL)application:(UIApplication *)application
|
|
continueUserActivity:(NSUserActivity *)userActivity
|
|
restorationHandler:(void (^)(NSArray *))restorationHandler {
|
|
|
|
// [START_EXCLUDE silent]
|
|
BOOL handled = NO;
|
|
|
|
NSLog(@"%@", userActivity.webpageURL);
|
|
|
|
__weak AppDelegate *weakSelf = self;
|
|
|
|
// [END_EXCLUDE]
|
|
handled = [[FIRDynamicLinks dynamicLinks]
|
|
handleUniversalLink:userActivity.webpageURL
|
|
completion:^(FIRDynamicLink * _Nullable dynamicLink,
|
|
NSError * _Nullable error) {
|
|
// [START_EXCLUDE]
|
|
AppDelegate *strongSelf = weakSelf;
|
|
NSString *message = [strongSelf generateDynamicLinkMessage:dynamicLink];
|
|
[strongSelf showDeepLinkAlertViewWithMessage:message];
|
|
// [END_EXCLUDE]
|
|
}];
|
|
|
|
// [START_EXCLUDE silent]
|
|
if (!handled) {
|
|
// Show the deep link URL from userActivity.
|
|
NSString *message =
|
|
[NSString stringWithFormat:@"continueUserActivity webPageURL:\n%@", userActivity.webpageURL];
|
|
[self showDeepLinkAlertViewWithMessage:message];
|
|
}
|
|
// [END_EXCLUDE]
|
|
|
|
return handled;
|
|
}
|
|
// [END continueuseractivity]
|
|
|
|
- (NSString *)generateDynamicLinkMessage:(FIRDynamicLink *)dynamicLink {
|
|
NSString *matchConfidence;
|
|
if (dynamicLink.matchConfidence == FIRDynamicLinkMatchConfidenceStrong) {
|
|
matchConfidence = @"strong";
|
|
} else {
|
|
matchConfidence = @"weak";
|
|
}
|
|
|
|
NSString *msg = [NSString stringWithFormat:@"App URL: %@\n"
|
|
@"Match Confidence: %@\n",
|
|
dynamicLink.url, matchConfidence];
|
|
return msg;
|
|
}
|
|
|
|
- (void)showDeepLinkAlertViewWithMessage:(NSString *)message {
|
|
UIAlertAction *okAction = [UIAlertAction actionWithTitle:@"OK"
|
|
style:UIAlertActionStyleDefault
|
|
handler:^(UIAlertAction *action) {
|
|
NSLog(@"OK");
|
|
}];
|
|
|
|
UIAlertController *alertController =
|
|
[UIAlertController alertControllerWithTitle:@"Deep-link Data"
|
|
message:message
|
|
preferredStyle:UIAlertControllerStyleAlert];
|
|
[alertController addAction:okAction];
|
|
[self.window.rootViewController presentViewController:alertController
|
|
animated:YES
|
|
completion:nil];
|
|
}
|
|
|
|
@end
|