2016-03-29 11 views
0

iBeaconの近くにローカル通知を送信するロケーション対応iOSアプリケーションを開発しています。私はデバイスがビーコンから約5メートル離れたところでトリガするジオフェンスをセットアップしました。iOSローカルプッシュ通知がデバイスを復帰させない

通知の受信はうまくいきますが、デバイスのロックを解除(タッチIDまたはパスコード)したり、スリープ復帰ボタン(時計を表示)で電源を入れると通知が表示されます。

通知がデバイスを起動させ、iMessageのような表示が点灯/振動/再生されるようにすることはできますか?

答えて

1

iBeaconsを使用している場合は、実際にジオフェンスを使用する必要はありません。何がやりたいことはそうのようなコア場所によって使用の監視である:

CLBeaconRegion *beaconRegion = [[CLBeaconRegion alloc] initWithProximityUUID:uuid identifier:uuid.UUIDString]; 
       [self.locationManager startMonitoringForRegion:beaconRegion]; 
       beaconRegion.notifyEntryStateOnDisplay = YES; 
       beaconRegion.notifyOnEntry = YES; 
       beaconRegion.notifyOnExit = YES; 

あなたはビーコン領域に対して監視されたらあなたはこれらのコア場所メソッドを通じてその信号が発生した際に、アプリが自動的に出入りします:

- (void)locationManager:(CLLocationManager *)manager didEnterRegion:(CLRegion *)region; 
- (void)locationManager:(CLLocationManager *)manager didExitRegion:(CLRegion *)region; 

これらのメソッドの内部では、ローカル通知を表示します。

iOSバージョン7.0以降では、iBeaconsで動作する位置情報サービスを取得するために、NSLocationAlwaysUsageDescriptionをinfo.plistに入力する必要があります。

0

あなたのアプリがアラートとサウンドの両方のタイプを要求する通知設定を登録していることを確認してください。 iOS 8以降、ユーザーがこの許可要求を許可しない限り、通知はサウンドの再生や電話のスリープ解除を行いません。

詳細はhereを参照してください。

if ([[UIApplication sharedApplication] 
    respondsToSelector:@selector(registerUserNotificationSettings:)]) { 
    UIUserNotificationType types = (UIUserNotificationType) (UIUserNotificationTypeBadge | 
                  UIUserNotificationTypeSound | UIUserNotificationTypeAlert); 

    UIUserNotificationSettings *mySettings = [UIUserNotificationSettings settingsForTypes:types categories:nil]; 

    [[UIApplication sharedApplication] registerUserNotificationSettings:mySettings];  
} 
関連する問題