Камера не загружается после предоставления разрешения при первом нажатии, но работает при последующих нажатиях SwiftUIIOS

Программируем под IOS
Ответить Пред. темаСлед. тема
Anonymous
 Камера не загружается после предоставления разрешения при первом нажатии, но работает при последующих нажатиях SwiftUI

Сообщение Anonymous »

Я новичок в Swiftui, и я строю приложение Tracker для обучения. Я хочу, чтобы пользователь имел возможность снять изображение квитанции или выбрать изображение с помощью фотопикера. < /P>
В настоящее время обе реализации работают, но есть небольшая проблема. Нажатие пользователя. Снять фото. Основные дисплеи предупреждения о разрешениях с вопросом пользователя предоставит ли он разрешение приложения на использование камеры. Если они выберут «Да», фотопикер отображается, чтобы выбрать фотографию, а не фактическую функциональность камеры. Если пользователь затем нажимает отмену и нажимает сфотографировать, камера отображается правильно, как и должно. < /P>
Как мне Избавьтесь от этой ошибки и позвольте камере отображаться, как только разрешено? Я попытался добавить задержку в очередь отправки, но это не сработало. Ниже мой текущий код. < /P>
.default(Text("Take Photo")) {
let cameraAuthorizationStatus = AVCaptureDevice.authorizationStatus(for: .video)
switch cameraAuthorizationStatus {
case .notDetermined:
// Request permission for the camera
AVCaptureDevice.requestAccess(for: .video) { granted in
DispatchQueue.main.async {
if granted {
if UIImagePickerController.isSourceTypeAvailable(.camera) {
sourceType = .camera
showImagePicker = true
} else {
showPermissionAlert = true
permissionAlertMessage = "Camera is not available on this device."
showSettingsButton = false // No need for a Settings button
}
} else {
showPermissionAlert = true
permissionAlertMessage = "Camera access has been denied. Please enable it in Settings."
showSettingsButton = true // Include a Settings button
}
}
}
case .authorized:
// Permission already granted
if UIImagePickerController.isSourceTypeAvailable(.camera) {
sourceType = .camera
showImagePicker = true
} else {
showPermissionAlert = true
permissionAlertMessage = "Camera is not available on this device."
showSettingsButton = false // No need for a Settings button
}
case .denied, .restricted:
// Permission denied or restricted
showPermissionAlert = true
permissionAlertMessage = "Camera access has been denied. Please enable it in Settings."
showSettingsButton = true // Include a Settings button
@unknown default:
showPermissionAlert = true
permissionAlertMessage = "An unknown error occurred. Please try again."
showSettingsButton = false // Default to no Settings button
}
}


Подробнее здесь: https://stackoverflow.com/questions/793 ... -on-follow
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «IOS»