1 つのオプションは、Proximity Beacon API のbeaconinfo:getforobserved
メソッドを使用して、アプリが認識しているすべてのビーコンの添付ファイルを積極的に取得することです。そのためのドキュメントはこちらでご覧いただけます。
アプリは、この呼び出しを定期的に (たとえば、起動時またはインターネット接続があるときに) 行い、既知の各ビーコンのすべての添付ファイル情報を取得できます。メソッド呼び出しへの応答は、添付データを持つBeaconInfoの配列を返します。アプリケーションは、これを Firebase または Eddystone 名前空間とインスタンス ID をキーとする他のローカル データ ストアに保存できます。
明らかに、アプリはこれが機能するためにすべてのビーコン識別子を前もって知る必要があります. Web サービス呼び出しは、API_KEY を使用して iOS アプリから行うことができます。
この情報をキャッシュに入れたら、ビーコン検出に基づいてアプリをトリガーしてユーザーにメッセージを送信する方法が必要です。私の知る限り、iOS 用の Nearby API は、添付情報が利用できない場合、これをオフラインで行いません。ここでまとめたような iOS Eddystone ビーコン スキャン ツールキットを使用することで、これを機能させることができます。 これにより、次のようなことができます。
self.beaconScanner = [RNLBeaconScanner sharedBeaconScanner];
[self.beaconScanner startScanning];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(didRangeBeacons:) name:@"didRangeBeacons" object:nil];
...
- (void) didRangeBeacons: (NSNotification *) notification {
NSArray *beacons = notification.userInfo[@"beacons"];
for (RNLBeacon *beacon in beacons) {
NSString *eddystoneNamespace = beacon.id1;
NSString *eddystoneInstance = beacon.id2;
// TODO: look up cached attachments for this beacon in data store
}
}