2017-10-03 32 views
5

Tôi đang yêu cầu vị trí của người dùng trong ứng dụng của tôi.Yêu cầu truy cập vị trí trong iOS 11

locationManager.requestAlwaysAuthorization() 

dòng mã này sẽ trả về thông điệp cảnh báo này:

enter image description here

Tuy nhiên, tôi muốn người dùng lựa chọn giữa "Đừng Allow" và "Always Allow" mà thôi. làm cách nào để xóa tùy chọn "Chỉ khi sử dụng ứng dụng"?

Biết rằng đây là những gì tôi đã bao gồm trong info.plist và xóa mọi hàng khỏi 3 hàng này trong info.plist đang khiến ứng dụng không hiển thị cảnh báo này.

enter image description here

Trả lời

1

Theo WWDC 2017 Session 713 về bản cập nhật công nghệ Vị trí, bạn nên luôn luôn bao gồm Khi Trong mô tả sử dụng khi liên kết chống lại iOS 11 và sau đó, nếu bạn muốn yêu cầu uỷ quyền Luôn. Và iOS sẽ bổ sung một tùy chọn để sử dụng vị trí cho chế độ Khi sử dụng.

Trích từ bảng điểm phiên.

Vì vậy, đối với iOS 11, chúng tôi yêu cầu tất cả các nhà phát triển luôn yêu cầu ứng dụng hỗ trợ thêm chế độ cấp phép khi sử dụng. Thay đổi này vừa có tính hồi tố vừa có giao diện, vì vậy khi người dùng cập nhật lên iOS 11, họ sẽ có thể ủy quyền bất kỳ ứng dụng nào yêu cầu Luôn ủy quyền chế độ ủy quyền khi sử dụng. Nếu bạn liên kết với iOS 11 SDK, bạn phải cung cấp một WhenInUseUsageDescription. Nếu không, ứng dụng của bạn sẽ không thể yêu cầu Luôn ủy quyền. Hơn nữa, khi ứng dụng của bạn yêu cầu Luôn ủy quyền, chúng tôi sẽ hiển thị thêm tùy chọn cấp quyền cấp phép ứng dụng của bạn khi sử dụng. Với ba nhắc nhở tùy chọn mới này, chúng ta cũng có một chuỗi UsageDescription mới. Ứng dụng của bạn cần cung cấp Mã thông báo sử dụng AlwaysAndWhenInUse. Vì đây là một khóa khác mà ứng dụng của bạn phải cung cấp khi bạn liên kết với iOS 11 SDK mới. Đối với các ứng dụng được liên kết với iOS 11 trở lên, Vị trí chính sẽ không sử dụng khóa NSLocationAlways UsageDescription cũ.

6

Không còn tùy chọn nữa.

iOS 11 đã được phát hành, nếu ứng dụng của bạn yêu cầu vị trí luôn bật (locationManager.requestAlwaysAuthorization()), người dùng sẽ tự động được cung cấp cả ba tùy chọn.

Không giống như các phiên bản iOS trước, tất cả các tùy chọn phải hiển thị cho người dùng; Điều đó dẫn đến: bạn phải thêm một khóa cho cả hai tùy chọn; Phỏng theo Apple Request Always Authorization Article:

Bạn được yêu cầu phải bao gồm các NSLocationWhenInUseUsageDescriptionNSLocationAlwaysAndWhenInUsageDescription phím trong tập tin Info.plist của ứng dụng. (Nếu ứng dụng của bạn hỗ trợ iOS 10 và trước đó, cũng cần có khóa NSLocationAlwaysUsageDescription.) Nếu các phím không có, yêu cầu ủy quyền sẽ không thành công ngay lập tức.

Tham chiếu: What's New in Location Technologies Phiên video.

+0

câu trả lời của bạn là chính xác, tuy nhiên, tôi không thể đánh dấu 2 câu trả lời là câu trả lời chính xác. – mahdi

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