Bağlantıları yönet

Bağlantı başlatma

Yakındaki cihazlar bulunduğunda, keşif yapan kullanıcı bağlantı başlatabilir. İlgili içeriği oluşturmak için kullanılan Aşağıdaki örnek, keşfedilebilir.

Swift

extension Example: DiscovererDelegate {
  func discoverer(
    _ discoverer: Discoverer, didFind endpointID: EndpointID, with context: Data) {
    // An endpoint was found. We request a connection to it. The endpoint info can be used
    // to provide arbitrary information to the discovering device (e.g. device name or type).
    discoverer.requestConnection(to: endpointID, using: "My Device".data(using: .utf8)!)
  }

  func discoverer(_ discoverer: Discoverer, didLose endpointID: EndpointID) {
    // A previously discovered endpoint has gone away.
  }
}

Kullanım alanınıza bağlı olarak, bunun yerine, tespit edilen cihazları kullanıcıya seçerek hangi cihazlara bağlanacaklarını seçme imkanı tanır.

Bağlantıyı kabul etme veya reddetme

Kaşif bir reklamverenle bağlantı isteğinde bulunduktan sonra, reklamveren bağlantı isteği advertiser(_:didReceiveConnectionRequestFrom:with:connectionRequestHandler:). delege yöntemidir.

Swift

extension Example: AdvertiserDelegate {
  func advertiser(
    _ advertiser: Advertiser, didReceiveConnectionRequestFrom endpointID: EndpointID,
    with context: Data, connectionRequestHandler: @escaping (Bool) -> Void) {
    // Call with `true` to accept or `false` to reject the incoming connection request.
    connectionRequestHandler(true)
  }
}

Reklamveren kabul ettikten sonra, her iki taraf da bilgilendirilir ve reklamverenin connectionManager(_:didReceive:from:verificationHandler:) üzerinden bağlantı delege yöntemidir.

Uygulamanızın, yetkilendirme yöntemiyle sağlanan doğrulama kodu. Bu sayede projede Kullanıcı, ilgili cihaza bağlandığını onaylar. Her iki cihaz da (kısa bir rastgele dizeden oluşan) yine aynı kod verilir. karar vermek size bunu doğrulayabilirsiniz. Bunun için jetonun her iki cihazda da gösterilmesi gerekir. Bluetooth eşlemeye benzer şekilde, kullanıcılardan manuel olarak karşılaştırmalarını ve onaylamalarını isteme iletişim kutusu.

Swift

extension Example: ConnectionManagerDelegate {
  func connectionManager(
    _ connectionManager: ConnectionManager, didReceive verificationCode: String,
    from endpointID: EndpointID, verificationHandler: @escaping (Bool) -> Void) {
    // Optionally show the user the verification code. Your app should call this handler
    // with a value of `true` if the nearby endpoint should be trusted, or `false`
    // otherwise.
    verificationHandler(true)
  }
}

Bağlantı yalnızca her iki taraf da kabul ettiğinde tam olarak kurulmuştur. Eğer veya her ikisi de reddedilirse bağlantı atılır.

Yukarıdaki örnekler, bağlantının her iki tarafça da otomatik olarak kabul edildiğini gösterir. ancak kullanım alanınıza bağlı olarak bu seçeneği reklamverenlere, örneğin bir şekilde iletebilir.