LogoLogo
  • Welcome!
  • MOBILE SDK
    • iOS
      • SnapOdds Operator
        • Installation
        • Initialization
        • Snapping Games
        • Customization
        • API documentation
      • SnapOdds Sport Media
        • Installation
        • Initialization
        • Snapping Games and Presenting Odds
        • Customization
        • API documentation
    • Android
      • SnapOdds Operator
        • Installation
        • Initialization
        • Permissions
        • Snapping Games
        • Customization
        • API documentation
      • SnapOdds Sport Media
        • Installation
        • Initialization
        • Permissions
        • Snapping Games and Presenting Odds
        • Customization
        • API documentation
    • React Native
      • iOS Installation
      • Android Installation
      • SnapOdds Operator
        • Initialization
        • Snapping Games
        • Customization
      • SnapOdds Sport Media
        • Initialization
        • Snapping Games and Presenting Odds
        • Customization
  • Web SDK
    • JavaScript
      • SnapOdds Operator
        • Installation
        • Access Token Handling
        • Snapping Games
        • Customization
        • API documentation
      • SnapOdds Sport Media
        • Installation
        • Access Token Handling
        • Snapping Games and Presenting Odds
        • Customization
        • API documentation
      • Implementation Errors
  • Integration Guide
    • SnapOdds as Button
    • SnapOdds as Banner
Powered by GitBook
On this page
  • Implementation
  • Live Game Capture And Odds Display Code Example
  • Camera Permissions Required before Presenting Snap
  • Recommendations
  • Present Snap in a UINavigationController
  • Limit to portrait

Was this helpful?

Export as PDF
  1. MOBILE SDK
  2. iOS
  3. SnapOdds Sport Media

Snapping Games and Presenting Odds

Implementation

  1. Verify the SDK is initialized.

  2. Retrieve an instance of SnapViewController with your desired (or the default) SnapConfiguration

  3. Present the SnapViewController (the recommended presentation is modally in a UINavigationController)

Live Game Capture And Odds Display Code Example

The following code illustrates a SnapViewController with the default configuration.

let snapViewController = SnapViewController.forSportsMedia(configuration: SnapConfiguration())
snapViewController.isModalInPresentation = true
snapViewController.navigationItem.leftBarButtonItem = UIBarButtonItem(barButtonSystemItem: .cancel, target: self, action: #selector(cancelSnap))
self.present(UINavigationController(rootViewController: snapViewController), animated: true, completion: nil)

If you do not want or need to customize the snapping configuration, you can also omit the configuration parameter.

Once a sporting event is successfully snapped, the OddsResultsViewController is automatically pushed in the UINavigationController and the odds for the snapped game are presented.

If the sporting event is not successfully snapped, an error message will appear in the viewfinder: "Your snap returned no results. Make sure your TV is visible in the viewfinder"

Camera Permissions Required before Presenting Snap

Applications must request user permission for camera access, and camera access is required for the app to function. For this reason, your application should be set to ask permission from the user to access the camera, and to receive said permission, before presenting the Snap UI. The following code will set your application to request and receive permission prior to opening Snap UI:

let status = AVCaptureDevice.authorizationStatus(for: .video)
switch status {
  case .authorized:
      presentSnap()
  case .notDetermined:
      AVCaptureDevice.requestAccess(for: .video) { [weak self] (granted) in
          DispatchQueue.main.async { [weak self] in
              if granted {
                  self?.presentSnap()
              } else {
                  presentAlertWithLinkToSettings()
              }
          }
      }
  case .denied: fallthrough
  case .restricted:
      presentAlertWithLinkToSettings()
  @unknown default:
      presentSnap()
}

Recommendations

Present Snap in a UINavigationController

SnapOdds recommends presentingSnapViewController in a UINavigationController. Please note that SnapViewController itself does not present any cancellation item within the UI. The developer of the application is responsible for configuring a cancel item on the presented UINavigationController.

Limit to portrait

Currently, Snap UI is optimized only for portrait orientation. We recommend that you limit the supported interface orientations for the presented UINavigationController to portrait only.

PreviousInitializationNextCustomization

Last updated 3 years ago

Was this helpful?