2013-10-22 22 views
5

Tôi đã thực hiện một số đọc về CLBeaconRegion và tôi đã thiết lập một số iBeacons thành công và đã kích hoạt cập nhật vị trí, ngay cả khi ứng dụng ở chế độ nền.CLBeaconRegion không gọi didEnterRegion từ chấm dứt

Tuy nhiên, từ những gì tôi đã đọc và chuyển từ CLRegion, tôi hiểu rằng bạn có thể nhấn locationManager:didEnterRegion: sau khi đơn đăng ký bị chấm dứt.

tôi đã thiết lập của tôi CLBeaconRegion như thế này:

beaconRegion = [[CLBeaconRegion alloc] initWithProximityUUID:[[NSUUID alloc] initWithUUIDString:SERVICE_UUID] 
                 major:0 
                 minor:0 
                identifier:BEACON_ID]; 
[beaconRegion setNotifyOnEntry:YES]; 
[beaconRegion setNotifyOnExit:YES]; 
[beaconRegion setNotifyEntryStateOnDisplay:YES]; 

Nhưng tôi không thể để kích hoạt đại biểu các 's CLLocationManager từ chấm dứt. Tôi đã rời khỏi khu vực (được xác nhận bởi một thông báo), đi xa khỏi ngọn hải đăng, chờ 30 giây, sau đó quay trở lại ngọn hải đăng, nhưng nó không kích hoạt đại biểu trong khi chấm dứt (hoạt động tốt trong khi ở hậu cảnh và nền trước).

Tác phẩm này có bị chấm dứt không? Tui bỏ lỡ điều gì vậy? Bất kỳ sự trợ giúp nào đều sẽ là tuyệt vời.

Trả lời

4

Tôi tin rằng khi bạn ở chế độ nền hoặc không chạy, nó gọi locationManager: didDetermineState: forRegion: thay vì locationManager: didEnterRegion :, và sau đó chỉ khi bạn đã đặt notifyEntryStateOnDisplay thành TRUE.

+0

Trong nền, nó vẫn gọi 'locationManager: didEnterRegion: ', là' locationManager: didDetermineState: forRegion: ', tuy nhiên, từ thử nghiệm của tôi, nó sẽ không gọi hoặc từ một nhà nước chấm dứt (user swiping ứng dụng lên). Tôi cũng có 'notifyEntryStateOnDisplay' được đặt thành' YES'/'TRUE'. – RileyE

1

EDIT: Dưới đây không còn đúng như 7.1. Bạn vẫn có thể nhận được thông báo ngay cả khi ứng dụng đã đóng

Hành vi của các ứng dụng được vuốt qua trong switcher ứng dụng hiện nay đã ảnh hưởng bạn đang mô tả dưới iOS 7.

Người dùng loại bỏ ứng dụng của bạn từ switcher đã đưa ra quyết định không cho phép ứng dụng của bạn chạy trong nền. Do đó, giám sát khu vực sẽ không mở lại ứng dụng của bạn.

Kiểm tra phiên "Có gì mới với đa nhiệm" từ WWDC 2013 để biết thêm thông tin.

-1

Yeah,

Same behaviour is being noticed .Sometimes even while calling setNotifyEntryStateOnDisplay, didEnterRegion not called even when in foreground. 
1

Đây là hành vi dự kiến ​​trên iOS 7. Tuy nhiên, hành vi này đã được thay đổi dưới iOS 7.1. iOS 7.1 sẽ chuyển các cuộc gọi đại biểu trở lại hoạt động trước iOS 7.

Tôi đã ghi lại hành vi này trong bài đăng trên blog của tôi.

http://www.simplymadeapps.com/blog/2014/03/7-1-brings-back-geofence-behavior/

+0

Điều này thật tuyệt vời và giúp đỡ rất nhiều. Cảm ơn bạn! – RileyE

Các vấn đề liên quan