-
Meet Nearby Interaction
The Nearby Interaction framework streams distance and direction between opted-in Apple devices containing the U1 chip. Discover how this powerful combination of hardware and software allow you to create intuitive spatial interactions based on the relative position of two or more devices. We'll walk you through this session-based API and show you how to deliver entirely new interactive experiences — all with privacy in mind.
Ressources
Vidéos connexes
WWDC22
WWDC21
WWDC20
-
Rechercher dans cette vidéo…
-
-
6:01 - Basic session setup
// A session instance. Store in whichever data structure makes the most sense for your app. var niSession: NISession? // Instantiate a new session object and set the session's delegate. func prepareMySession() { // Verify hardware support. guard NISession.isSupported else { print("Nearby Interaction is not available on this device.") return } // Create a new session for each peer. niSession = NISession() // Set the session’s delegate. niSession?.delegate = self // This class of 'self' needs to conform to NISessionDelegate. } // Share the encoded discovery token to the peer you intend to interact with. func sendDiscoveryTokenToMyPeer(myPeer: Any /* change to whichever type represents peers in your app */) { guard let myToken = niSession?.discoveryToken else { // The session object is not initialized or has been invalidated. return } if let encodedToken = try? NSKeyedArchiver.archivedData(withRootObject: myToken, requiringSecureCoding: true) { <# share token using your app's networking layer #> } } // Once you receive a token from the peer, create a configuration and run the session. // This functions shows how to decode token data that was previously encoded using NSKeyedArchiver. func runMySession(peerTokenData: Data) { guard let peerDiscoveryToken = try? NSKeyedUnarchiver.unarchivedObject(ofClass: NIDiscoveryToken.self, from: peerTokenData) else { print("Unexpectedly failed to decode discovery token.") return } // Create a session configuration using the discovery token received from the peer. let config = NINearbyPeerConfiguration(peerToken: peerDiscoveryToken) // Run the session with the configuration. niSession?.run(config) } -
12:40 - Verify hardware support
// Always verify hardware support. guard NISession.isSupported else { print("Nearby Interaction is not available on this device.") return }
-