mirror of
https://bitbucket.org/vendoo/vendoo_v1.0.git
synced 2025-12-25 19:57:41 +00:00
122 lines
4.0 KiB
Swift
122 lines
4.0 KiB
Swift
//
|
|
// 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 UIKit
|
|
// [START import]
|
|
import FirebaseDynamicLinks
|
|
// [END import]
|
|
import Firebase
|
|
|
|
|
|
@UIApplicationMain
|
|
class AppDelegate: UIResponder, UIApplicationDelegate {
|
|
|
|
var window: UIWindow?
|
|
let CUSTOM_URL_SCHEME = "dlscheme"
|
|
|
|
// [START didfinishlaunching]
|
|
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
|
|
// Set deepLinkURLScheme to the custom URL scheme you defined in your
|
|
// Xcode project.
|
|
FIROptions.defaultOptions().deepLinkURLScheme = self.CUSTOM_URL_SCHEME
|
|
FIRApp.configure()
|
|
|
|
return true
|
|
}
|
|
// [END didfinishlaunching]
|
|
|
|
// [START openurl]
|
|
func application(app: UIApplication, openURL url: NSURL, options: [String : AnyObject]) -> Bool {
|
|
return application(app, openURL: url, sourceApplication: nil, annotation: [:])
|
|
}
|
|
|
|
func application(application: UIApplication, openURL url: NSURL, sourceApplication: String?, annotation: AnyObject) -> Bool {
|
|
let dynamicLink = FIRDynamicLinks.dynamicLinks()?.dynamicLinkFromCustomSchemeURL(url)
|
|
if let dynamicLink = 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.
|
|
let message = generateDynamicLinkMessage(dynamicLink)
|
|
if #available(iOS 8.0, *) {
|
|
showDeepLinkAlertViewWithMessage(message)
|
|
} else {
|
|
// Fallback on earlier versions
|
|
}
|
|
// [END_EXCLUDE]
|
|
return true
|
|
}
|
|
|
|
// [START_EXCLUDE silent]
|
|
// Show the deep link that the app was called with.
|
|
if #available(iOS 8.0, *) {
|
|
showDeepLinkAlertViewWithMessage("openURL:\n\(url)")
|
|
} else {
|
|
// Fallback on earlier versions
|
|
}
|
|
// [END_EXCLUDE]
|
|
return false
|
|
}
|
|
// [END openurl]
|
|
|
|
// [START continueuseractivity]
|
|
@available(iOS 8.0, *)
|
|
func application(application: UIApplication, continueUserActivity userActivity: NSUserActivity, restorationHandler: ([AnyObject]?) -> Void) -> Bool {
|
|
let handled = FIRDynamicLinks.dynamicLinks()?.handleUniversalLink(userActivity.webpageURL!) { (dynamiclink, error) in
|
|
// [START_EXCLUDE]
|
|
let message = self.generateDynamicLinkMessage(dynamiclink!)
|
|
self.showDeepLinkAlertViewWithMessage(message)
|
|
// [END_EXCLUDE]
|
|
}
|
|
|
|
// [START_EXCLUDE silent]
|
|
if (!handled!) {
|
|
// Show the deep link URL from userActivity.
|
|
let message = "continueUserActivity webPageURL:\n\(userActivity.webpageURL)"
|
|
showDeepLinkAlertViewWithMessage(message)
|
|
}
|
|
// [END_EXCLUDE]
|
|
|
|
return handled!
|
|
}
|
|
// [END continueuseractivity]
|
|
|
|
func generateDynamicLinkMessage(dynamicLink: FIRDynamicLink) -> String {
|
|
let matchConfidence: String
|
|
if (dynamicLink.matchConfidence == .Weak) {
|
|
matchConfidence = "Weak";
|
|
} else {
|
|
matchConfidence = "Strong";
|
|
}
|
|
let message = "App URL: \(dynamicLink.url)\nMatch Confidence: \(matchConfidence)\n"
|
|
return message;
|
|
}
|
|
|
|
@available(iOS 8.0, *)
|
|
func showDeepLinkAlertViewWithMessage(message: String) {
|
|
let okAction = UIAlertAction.init(title: "OK", style: .Default) { (action) -> Void in
|
|
print("OK")
|
|
}
|
|
|
|
let alertController = UIAlertController.init(title: "Deep-link Data", message: message, preferredStyle: .Alert)
|
|
alertController.addAction(okAction)
|
|
self.window?.rootViewController?.presentViewController(alertController, animated: true, completion: nil)
|
|
}
|
|
|
|
|
|
}
|
|
|