从“设置”打开应用程序时如何检测授权状态是否更改
How to detect if Authorisation Status changed when application is opened from Settings
当用户拒绝位置权限时,我会显示一个弹出窗口。该弹出窗口有一个按钮,可将用户带到设置。当用户转到设置并允许权限然后返回到应用程序时;如何刷新我的视图?
在 appDelegate.swift 文件中重新检查 applicationWillEnterForeground
中的位置权限,并使用通知观察器
向您的视图控制器发送通知
yourViewcontroller.swift
override func viewDidLoad() {
super.viewDidLoad()
NotificationCenter.default.addObserver(self, selector: #selector(updateLocationPermission(notfication:)), name: "updateLocation", object: nil)
}
@objc func updateLocationPermission(notfication: NSNotification) {
print("location updated")
}
AppDelegate.swift
func applicationWillEnterForeground(_ application: UIApplication) {
let nc = NotificationCenter.default
nc.post(name: Notification.Name("updateLocation"), object: nil)
}
当您返回应用程序时,您应该检查位置权限状态以更新更改:
在applicationDidBecomeActive
中appDelegate.swift
,勾选CLLocationManager.authorizationStatus()
当用户拒绝位置权限时,我会显示一个弹出窗口。该弹出窗口有一个按钮,可将用户带到设置。当用户转到设置并允许权限然后返回到应用程序时;如何刷新我的视图?
在 appDelegate.swift 文件中重新检查 applicationWillEnterForeground
中的位置权限,并使用通知观察器
yourViewcontroller.swift
override func viewDidLoad() {
super.viewDidLoad()
NotificationCenter.default.addObserver(self, selector: #selector(updateLocationPermission(notfication:)), name: "updateLocation", object: nil)
}
@objc func updateLocationPermission(notfication: NSNotification) {
print("location updated")
}
AppDelegate.swift
func applicationWillEnterForeground(_ application: UIApplication) {
let nc = NotificationCenter.default
nc.post(name: Notification.Name("updateLocation"), object: nil)
}
当您返回应用程序时,您应该检查位置权限状态以更新更改:
在applicationDidBecomeActive
中appDelegate.swift
,勾选CLLocationManager.authorizationStatus()