Sử dụng khung Thông báo người dùng có sẵn trong iOS 10 tôi đã cố kích hoạt thông báo bất cứ khi nào Người dùng nhập vị trí địa lý cụ thể bằng cách sử dụng UNLocationNotificationTrigger. Khi tôi thử kiểm tra nó thông qua trình mô phỏng bằng cách mô phỏng vị trí địa lý, thông báo không được kích hoạt, nhưng Trình quản lý vị trí trả về vị trí địa lý được cập nhật. Điều này có nên được thử nghiệm trong thiết bị thực thay vì chạy nó trong giả lập không?UNLocationNotificationTrigger- Không hoạt động trong trình mô phỏng
7
A
Trả lời
2
Theo Apple Documentation:
Apps phải yêu cầu quyền truy cập vào dịch vụ định vị và phải có điều khoản khi-trong-sử dụng để sử dụng lớp này. Để yêu cầu quyền sử dụng dịch vụ vị trí, hãy gọi phương thức requestWhenInUseAuthorization() của CLLocationManager trước khi lên lịch cho bất kỳ trình kích hoạt dựa trên vị trí nào.
Tuy nhiên với các trình mô phỏng/thiết bị của tôi "khi sử dụng" không đủ, quyền phải được đặt thành "Luôn luôn".
Như vậy, thêm phím này để pinfo.list bạn
<key>NSLocationAlwaysUsageDescription</key>
<string>We use your location to warn you when there are adorable cats nearby</string>
Sau đó kích hoạt địa điểm. Xác định trình kích hoạt của bạn chỉ khi bạn chắc chắn mình được ủy quyền luôn, ví dụ: tôi đã làm điều đó ở đây trong didChangeAuthorizationStatus:
class myClass : CLLocationManagerDelegate {
var locationManager: CLLocationManager()
func init() {
// Note: defining the location manager locally in this function won't work
// var locationManager: CLLocationManager()
// as it gets gargabe collected too early.
locationManager.delegate = self
locationManager.requestAlwaysAuthorization()
UNUserNotificationCenter.current().delegate = self
UNUserNotificationCenter.current().requestAuthorization(options: [.alert, .sound]) {(accepted, error) in
if !accepted {
logger.info("Notification access denied.")
}
}
// MARK CLLocationManagerDelegate:
func locationManager(manager: CLLocationManager,
didChangeAuthorizationStatus status: CLAuthorizationStatus)
{
if status == .AuthorizedAlways {
let region = CLCircularRegion(center: CLLocationCoordinate2D(latitude: 61.446812, longitude: 23.859914),
radius: 1000, identifier: "test")
logger.info("Notification will trigger at \(region)")
region.notifyOnEntry = true
region.notifyOnExit = false
let trigger = UNLocationNotificationTrigger(region: region, repeats:true)
let content = UNMutableNotificationContent()
content.title = "Oh Dear !"
content.body = "It's working!"
content.sound = UNNotificationSound.default()
let request = UNNotificationRequest(identifier: "textNotification", content: content, trigger: trigger)
UNUserNotificationCenter.current().removeAllPendingNotificationRequests()
UNUserNotificationCenter.current().add(request) {(error) in
if let error = error {
print("Uh oh! We had an error: \(error)")
}
}
}
}
}
Các vấn đề liên quan
- 1. Trình mô phỏng Android không hoạt động?
- 2. Âm thanh không hoạt động trong Trình mô phỏng iPhone?
- 3. Trình mô phỏng Eclipse AVD Nexus 5 không hoạt động
- 4. AVSpeechSynthesizer hoạt động trên trình mô phỏng nhưng không hoạt động trên thiết bị
- 5. SKProductsRequest không hoạt động trong iOS 11 Mô phỏng
- 6. Vị trí mô phỏng iOS không hoạt động
- 7. Macro mô phỏng iPhone mục tiêu không hoạt động
- 8. Mở Trình mô phỏng NFC không hoạt động với trình giả lập Android
- 9. Thông báo Firebase không hoạt động trong Trình mô phỏng Android
- 10. Không tìm thấy thư mục NSBundle trên thiết bị nhưng hoạt động trong trình mô phỏng
- 11. Mô phỏng MouseEvent không hoạt động bình thường OSX
- 12. Ứng dụng hoạt động như mong đợi trong Trình mô phỏng truyền hình Tizen, nhưng không phải trong Trình mô phỏng
- 13. Mô phỏng mạng chậm trên trình mô phỏng Android
- 14. Trình mô phỏng Android sẽ không khởi động được
- 15. Trình mô phỏng iOS không khởi chạy
- 16. Jenkins không thể khởi động trình mô phỏng
- 17. Hộp thoại Đăng nhập Facebook không hoạt động trên trình mô phỏng iOS6
- 18. Khi mua ứng dụng không hoạt động trên Xcode 5, trình mô phỏng iOS 7
- 19. Trình mô phỏng iOS 7.1 không hoạt động trên Xcode 7.1
- 20. Triển khai nhanh ứng dụng cho Trình mô phỏng Android Luôn luôn không hoạt động
- 21. Mô phỏng trình duyệt - Python
- 22. Không thể mô phỏng như IE7 trong trình duyệt IE10
- 23. Không có Lịch nào trong Trình mô phỏng
- 24. Không thể tạo thư mục trên/lưu trữ/mô phỏng/0 trên trình mô phỏng
- 25. Cách hoạt động của trò chơi mô phỏng thể thao?
- 26. Không thể gửi email bằng MFMailComposeViewController trong trình mô phỏng
- 27. Trình mô phỏng Xperia Z
- 28. Công cụ mô phỏng Simulink hoạt động như thế nào?
- 29. Tôi không mô phỏng thiết bị di động. Làm cách nào để tắt trình mô phỏng thiết bị Chrome DevTools?
- 30. Widget Android trong trình mô phỏng
Tôi đang gặp sự cố khi nhận thông báo trên thiết bị thực. :/ – Rihards
Tôi có thể nhận được thông báo được kích hoạt dựa trên ngày và giờ sử dụng Khung thông báo người dùng trên cả trình mô phỏng và thiết bị. Tôi chưa kiểm tra thông báo dựa trên vị trí trong thiết bị. – Ashok
Bạn đã cố gắng khắc phục sự cố chưa? Nếu không tôi có thể cho bạn một bàn tay. –