获取Kontakt iBeacon的属性

我正在开发一个iBeacon应用程序,我想要获得Kontakt iBeacons所有属性。

有2或3话题关于在计算器,但没有人不能回答这个问题。

我的应用程序是一个全球性的iBeacon项目。 我可以看到Estimote iBeacons所有属性也可以改变major minor值。 我在Estimote SDK使用了连接方法,但是无法连接Kontakt iBeacons 。 我只用Kontakt SDK访问majorminorrssi值。

我有一个API key来连接这些iBeacons但我无法连接。 我只想学习访问这些值的方法。 有人可以告诉我这个方法吗?

谢谢,Halil。

 client=[KTKClient new]; client.apiKey=@"apikey"; locationManager=[KTKLocationManager new]; locationManager.delegate=self; NSError *error; NSArray *array=[client getRegionsError:&error]; [locationManager setRegions:array]; //[locationManager stopMonitoringBeacons]; [locationManager startMonitoringBeacons]; beaconManager = [KTKBeaconManager new]; beaconManager.delegate = self; [beaconManager startFindingDevices]; - (void)locationManager:(KTKLocationManager *)locationManager didRangeBeacons:(NSArray *)beacons{ for (CLBeacon *beacon in beacons) { KTKBeacon *beaconData = [self _getDataForBeacon:beacon]; if (beaconData) beaconsData[beacon] = beaconData; } } -(KTKBeacon *)_getDataForBeacon:(CLBeacon *)beacon { NSString *strURL = [NSString stringWithFormat:@"https://api.kontakt.io/beacon?proximity=%@&major=%@&minor=%@", [beacon.proximityUUID UUIDString],beacon.major,beacon.minor]; NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:strURL]]; [request setValue:@"apikey" forHTTPHeaderField:@"Api-Key"]; [request setValue:@"application/vnd.com.kontakt+json; version=2" forHTTPHeaderField:@"Accept"]; NSError *error; NSData *jsonData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:&error]; NSError * error1=nil; NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:jsonData options:0 error:&error1]; KTKBeacon *ktkBeacon = [[KTKBeacon alloc] initWithDictionary:dic]; NSLog(@"%@",dic); return ktkBeacon; } 

Johny Kumar提供了非常有帮助,但丑陋和过时的回应。 不知何故,他的代码是我能find使用KontaktSDK API的唯一例子,所以在KontaktSDK API上多了一些…

这是Johny Kumar用新API解答的快速版本

 import KontaktSDK func beaconManager(manager: KTKBeaconManager, didRangeBeacons beacons: [CLBeacon], inRegion region: KTKBeaconRegion) { print("Ranged beacons count: \(beacons.count)") for beacon in beacons { print(beacon) let uuid = beacon.proximityUUID.UUIDString let major = beacon.major let minor = beacon.minor let parameters: [String: AnyObject] = ["proximity":uuid, "major" : major, "minor": minor] KTKCloudClient.sharedInstance().getObjects(KTKDevice.self, parameters: parameters){ response, error in guard let objects = response?.objects else {return} for object in objects{ if let device = object as? KTKDevice { print("device: \(device)") } } } } } 

如果您想获取信标(或设备)的关联操作,

 func fetchActions(device: KTKDevice) { let params = ["uniqueId":device.uniqueID] KTKCloudClient.sharedInstance().getObjects(KTKAction.self, parameters: params) { response ,error in guard let objects = response?.objects else {return} for object in objects{ if let action = object as? KTKAction { print(action.url) } } } } 

Kontakt并没有提供任何如何做到这一点的例子,所以如果你从Kontakt读这个,请把它放在你的示例文档中。