Giter Site home page Giter Site logo

Comments (1)

0xymoro avatar 0xymoro commented on June 30, 2024

Ok - so had to change native code as to which notification it sent and conform with the plugin's expected notification type/name. This seems quite undocumented and a little over the top so I think I'm hacking around something obvious but don't know what it is, but this hack works well.

Code that worked:

` @available(iOS 9.0, *)
func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey: Any]) -> Bool {
let handledByApplicationDelegateProxy = ApplicationDelegateProxy.shared.application(app, open: url, options: options)
let sourceApplication = options[UIApplication.OpenURLOptionsKey.sourceApplication] as? String
let handledByCustomLogic = application(app, open: url, sourceApplication: sourceApplication, annotation: "")

    return handledByApplicationDelegateProxy || handledByCustomLogic
}

func application(_ application: UIApplication, open url: URL, sourceApplication: String?, annotation: Any) -> Bool {
    if let dynamicLink = DynamicLinks.dynamicLinks().dynamicLink(fromCustomSchemeURL: url) {
        // Log the dynamic link or handle the deep link.
        print("Dynamic link detected: \(dynamicLink)")
        
        // Post a notification with the dynamic link
        NotificationCenter.default.post(name: Notification.Name.capacitorOpenURL, object: ["url": url])
        
        return true
    }
    return false
}

func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool {
    let handledByDynamicLinks = DynamicLinks.dynamicLinks().handleUniversalLink(userActivity.webpageURL!) { dynamiclink, error in
        if let error = error {
            print("Failed to handle universal link: \(error)")
        } else if let dynamiclink = dynamiclink {
            // Log the dynamic link or handle the deep link.
            print("Dynamic link detected: \(dynamiclink)")
            
            // Post a notification with the dynamic link
            NotificationCenter.default.post(name: Notification.Name.capacitorOpenUniversalLink, object: ["url": userActivity.webpageURL!])
        }
    }

    return handledByDynamicLinks || ApplicationDelegateProxy.shared.application(application, continue: userActivity, restorationHandler: restorationHandler)
}`

from capacitor-firebase-dynamic-links.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.