{"__v":2,"_id":"55a90b30c8bd450d000dd164","category":{"__v":12,"_id":"55a8e7a227a17d21005251a2","pages":["55a8feb327a17d2100525201","55a9021527a17d2100525208","55a9035927a17d210052520b","55a903cfcf45e1390093f29e","55a9049727a17d210052520f","55a9059a27a17d2100525217","55a9066527a17d210052521e","55a9075bcf45e1390093f2a9","55a9090927a17d2100525228","55a90b30c8bd450d000dd164","55a90c56cf45e1390093f2bf","55a9102bc8bd450d000dd170"],"project":"559a61d2dbcfd20d00710b39","version":"559a61d2dbcfd20d00710b3c","sync":{"url":"","isSync":false},"reference":false,"createdAt":"2015-07-17T11:31:46.263Z","from_sync":false,"order":2,"slug":"ios-sdk-reference","title":"iOS SDK Reference"},"parentDoc":null,"project":"559a61d2dbcfd20d00710b39","user":"559a618bdbcfd20d00710b38","version":{"__v":23,"_id":"559a61d2dbcfd20d00710b3c","project":"559a61d2dbcfd20d00710b39","createdAt":"2015-07-06T11:09:06.510Z","releaseDate":"2015-07-06T11:09:06.510Z","categories":["559a61d3dbcfd20d00710b3d","55a589ddaaf9cf1900114dd0","55a589e30f354f0d00fd0312","55a589ea80c8a30d00b323cc","55a589f6aaf9cf1900114dd1","55a58d4e80c8a30d00b323e6","55a8e7a227a17d21005251a2","55a93098cf45e1390093f351","55afb085f202b12100cd9e83","55afb22e902fd51700f5f8bf","55afb260902fd51700f5f8c2","55afb28ec8a85321007a5462","55afb294f202b12100cd9e95","55afb29b902fd51700f5f8c5","55afb2a1c8a85321007a5463","55afb2a7902fd51700f5f8c7","55afb2ad902fd51700f5f8c8","55afb2b5902fd51700f5f8ca","55b74b2131bccb190081bedc","55bb441b54f9640d006e6cf2","565711085cb2420d00d70071","5681681330018c0d006bf7ff","588f38b5923d610f00c72dad"],"is_deprecated":false,"is_hidden":false,"is_beta":true,"is_stable":true,"codename":"","version_clean":"1.0.0","version":"1"},"updates":[],"next":{"pages":[],"description":""},"createdAt":"2015-07-17T14:03:28.610Z","link_external":false,"link_url":"","githubsync":"","sync_unique":"","hidden":false,"api":{"results":{"codes":[]},"settings":"","auth":"required","params":[],"url":""},"isReference":false,"order":10,"body":"Implement MOCAProximityEventsDelegate to handle proximity events:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \":::at:::interface AppDelegate : UIResponder <UIApplicationDelegate, MOCAProximityEventsDelegate>\\n\\n…\\n\\nMOCAProximityService * proxService = [MOCA proximityService];\\nif (proxService)\\n{\\n    // Notify me when beacon-related events are fired.\\n    [proxService eventsDelegate:self];\\n}\\n\\n/**\\n * Method invoked when a proximity service loaded or updated a registry of beacons\\n * from MOCA cloud.\\n *\\n * @param service proximity service\\n * @param beacons current collection of registered beacons\\n *\\n * @return YES if the custom trigger fired, or NO otherwise.\\n */\\n-(void)proximityService:(MOCAProximityService*)service\\n   didLoadedBeaconsData:(NSArray*)beacons\\n{\\n    NSLog(@\\\"Current beacon registry:\\\");\\n    for (MOCABeacon * beacon in beacons)\\n    {\\n        NSLog(@\\\"\\\\tBeacon name %@, UUID %@, Major %@, Minor %@\\\", \\u000b           beacon.name, [beacon.proximityUUID UUIDString], beacon.major, beacon.minor);\\n    }\\n}\\n\",\n      \"language\": \"objectivec\"\n    }\n  ]\n}\n[/block]\nThe MOCAProximityEventsDelegate exposes the following events:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"@protocol MOCAProximityEventsDelegate <NSObject>\\n\\n@optional\\n\\n-(void)proximityService:(MOCAProximityService*)service didEnterRange:(MOCABeacon *)beacon withProximity:(CLProximity)proximity;\\n-(void)proximityService:(MOCAProximityService*)service didExitRange:(MOCABeacon *)beacon;\\n-(void)proximityService:(MOCAProximityService*)service didBeaconProximityChange:(MOCABeacon*)beacon\\n               fromProximity:(CLProximity)prevProximity toProximity:(CLProximity)curProximity;\\n\\n-(void)proximityService:(MOCAProximityService*)service didEnterPlace:(MOCAPlace *)place;\\n-(void)proximityService:(MOCAProximityService*)service didExitPlace:(MOCAPlace *)place;\\n\\n-(void)proximityService:(MOCAProximityService*)service didEnterZone:(MOCAZone *)zone;\\n-(void)proximityService:(MOCAProximityService*)service didExitZone:(MOCAZone *)zone;\\n\\n-(BOOL)proximityService:(MOCAProximityService*)service handleCustomTrigger:(NSString*)customAttribute;\\n\\n-(void)proximityService:(MOCAProximityService*)service didLoadedBeaconsData:(NSArray*)beacons;\\n\\n@end\\n\",\n      \"language\": \"objectivec\"\n    }\n  ]\n}\n[/block]\n\n[block:callout]\n{\n  \"type\": \"warning\",\n  \"body\": \"These methods are completely optional. You don't need to implement them in order to get Proximity Experiences. \\nImplement these methods if you want to have a deeper integration with MOCA SDK. (e.g. custom information in your app views).\"\n}\n[/block]","excerpt":"","slug":"proximity-events-delegate","type":"basic","title":"Proximity Events Delegate"}

Proximity Events Delegate


Implement MOCAProximityEventsDelegate to handle proximity events: [block:code] { "codes": [ { "code": "@interface AppDelegate : UIResponder <UIApplicationDelegate, MOCAProximityEventsDelegate>\n\n…\n\nMOCAProximityService * proxService = [MOCA proximityService];\nif (proxService)\n{\n // Notify me when beacon-related events are fired.\n [proxService eventsDelegate:self];\n}\n\n/**\n * Method invoked when a proximity service loaded or updated a registry of beacons\n * from MOCA cloud.\n *\n * @param service proximity service\n * @param beacons current collection of registered beacons\n *\n * @return YES if the custom trigger fired, or NO otherwise.\n */\n-(void)proximityService:(MOCAProximityService*)service\n didLoadedBeaconsData:(NSArray*)beacons\n{\n NSLog(@\"Current beacon registry:\");\n for (MOCABeacon * beacon in beacons)\n {\n NSLog(@\"\\tBeacon name %@, UUID %@, Major %@, Minor %@\", \u000b beacon.name, [beacon.proximityUUID UUIDString], beacon.major, beacon.minor);\n }\n}\n", "language": "objectivec" } ] } [/block] The MOCAProximityEventsDelegate exposes the following events: [block:code] { "codes": [ { "code": "@protocol MOCAProximityEventsDelegate <NSObject>\n\n@optional\n\n-(void)proximityService:(MOCAProximityService*)service didEnterRange:(MOCABeacon *)beacon withProximity:(CLProximity)proximity;\n-(void)proximityService:(MOCAProximityService*)service didExitRange:(MOCABeacon *)beacon;\n-(void)proximityService:(MOCAProximityService*)service didBeaconProximityChange:(MOCABeacon*)beacon\n fromProximity:(CLProximity)prevProximity toProximity:(CLProximity)curProximity;\n\n-(void)proximityService:(MOCAProximityService*)service didEnterPlace:(MOCAPlace *)place;\n-(void)proximityService:(MOCAProximityService*)service didExitPlace:(MOCAPlace *)place;\n\n-(void)proximityService:(MOCAProximityService*)service didEnterZone:(MOCAZone *)zone;\n-(void)proximityService:(MOCAProximityService*)service didExitZone:(MOCAZone *)zone;\n\n-(BOOL)proximityService:(MOCAProximityService*)service handleCustomTrigger:(NSString*)customAttribute;\n\n-(void)proximityService:(MOCAProximityService*)service didLoadedBeaconsData:(NSArray*)beacons;\n\n@end\n", "language": "objectivec" } ] } [/block] [block:callout] { "type": "warning", "body": "These methods are completely optional. You don't need to implement them in order to get Proximity Experiences. \nImplement these methods if you want to have a deeper integration with MOCA SDK. (e.g. custom information in your app views)." } [/block]