Support for Swift UI

Prev Next

1. Loads Full Screen Survey

 private func presentFullScreenSurvey() {
        let dummyDelegate = DummySurveyDelegate()
        XeboSwiftUIWrapper.presentFullScreenSurvey(
            surveyURL: surveyURL,      // Survey URL string
            delegate: dummyDelegate
        )
    }

// A simple dummy delegate conforming to XeboSurveyDelegate
class DummySurveyDelegate: XeboSurveyDelegate {
    func handleSurveyLoaded(response: [String: AnyObject]) {
        print("Survey loaded with response: \(response)")
    }
}

2. Load survey after N visits

 private func loadSurveyAfter(_ visits: Int) {
        let dummyDelegate = DummySurveyDelegate()
        XeboSwiftUIWrapper.loadSurveyAfter(
            visits: visits,
            surveyURL: surveyURL,       // Survey URL string
            delegate: dummyDelegate
        )

    }
    
  // A simple dummy delegate conforming to XeboSurveyDelegate
class DummySurveyDelegate: XeboSurveyDelegate {
    func handleSurveyLoaded(response: [String: AnyObject]) {
        print("Survey loaded with response: \(response)")
    }
}

3. Load survey in Pop up form

 private func presentPopupSurvey() {
        let dummyDelegate = DummySurveyDelegate()
        XeboSwiftUIWrapper.presentPopupSurvey(
            surveyURL: surveyURL,      // Survey URL string
            delegate: dummyDelegate
        )
    }
  // A simple dummy delegate conforming to XeboSurveyDelegate
class DummySurveyDelegate: XeboSurveyDelegate {
    func handleSurveyLoaded(response: [String: AnyObject]) {
        print("Survey loaded with response: \\(response)")
    }
}

4. Load survey in Inline form (Embedded)

 private func presentInlineSurvey() {
        let dummyDelegate = DummySurveyDelegate()
        XeboSwiftUIWrapper(
                    surveyURL: surveyURL,
                    delegate: dummyDelegate,
                    isSurveyVisible: $isSurveyVisible, // Pass binding
                    embeddedSurveyURL: $embeddedSurveyURL // Pass binding
                )
    }
  // A simple dummy delegate conforming to XeboSurveyDelegate
class DummySurveyDelegate: XeboSurveyDelegate {
    func handleSurveyLoaded(response: [String: AnyObject]) {
        print("Survey loaded with response: \\(response)")
    }
}

5 Loads Lowest Response Survey (SwiftUI)

private func loadSurvey() {
    let myUUIDs = ["uuid-1", "uuid-2"]
    let myKey = "your-api-key"
    let dummyDelegate = DummySurveyDelegate()
    XeboSwiftUIWrapper.loadLowestResponseSurvey(
        from: myUUIDs,
        apiKey: myKey,
        delegate: dummyDelegate
    )
} 
// A simple dummy delegate conforming to XeboSurveyDelegate
class DummySurveyDelegate: XeboSurveyDelegate {
    func handleSurveyLoaded(response: [String: AnyObject]) {
        print(">>> Survey loaded with response: \\(response)")
    }
}