Demande d'autorisation pour la camera et la bibliothèque dans iOS 10 – Info.plist

J'ai implémenté un WKWebView dans une application. il y a une input de file dans la page Web montrée où il devrait importer une image des photos. Chaque fois que j'appuie sur cette input et select "Prendre une photo" ou "Photothèque", l'application plante soudainement, ce qui est dû au fait que l'application manque la permission de prendre une photo ou d'importer depuis la bibliothèque.

Comment puis-je appuyer une request d'autorisation lorsque l'user sélectionne l'une des methods mentionnées (Prendre une photo ou une photothèque)?

J'utilise Swift 3.0 avec WKWebView.

Vous devez append l'autorisation ci-dessous dans Info.plist. Autorisation dans Info.plist

Caméra :

Key : Privacy - Camera Usage Description Value : $(PRODUCT_NAME) camera use 

Photo:

 Key : Privacy - Photo Library Usage Description Value : $(PRODUCT_NAME) photo use 

Vous pouvez également requestr l'access par programme, ce que je préfère parce que dans la plupart des cas, vous devez savoir si vous avez pris l'access ou non.

Swift 4 mise à jour:

  //Camera AVCaptureDevice.requestAccess(for: AVMediaType.video) { response in if response { //access granted } else { } } //Photos let photos = PHPhotoLibrary.authorizationStatus() if photos == .notDetermined { PHPhotoLibrary.requestAuthorization({status in if status == .authorized{ ... } else {} }) } 

Vous ne partagez pas de code, donc je ne peux pas être sûr que cela vous serait utile, mais en général, utilisez-le comme une bonne pratique.

Fichier: Info.plist

Pour la camera :

 <key>NSCameraUsageDescription</key> <ssortingng>You can take photos to document your job.</ssortingng> 

Pour la bibliothèque de photos , vous souhaiterez que celle-ci autorise l'user de l'application à parcourir la photothèque.

 <key>NSPhotoLibraryUsageDescription</key> <ssortingng>You can select photos to attach to reports.</ssortingng> 

Pour requestr la permission pour l'application photo, vous devez append ce code (Swift 3) :

 PHPhotoLibrary.requestAuthorization({ (newStatus) in if newStatus == PHAuthorizationStatus.authorized { /* do stuff here */ } }) 

La manière la plus simple d'append des permissions sans avoir à le programmer est d'ouvrir votre file info.plist et de sélectionner + à côté de la list Information Property et de faire défiler la list déroulante vers les options Privacy. ou Utilisation de la bibliothèque de photos de confidentialité Description pour accéder à la photothèque. Remplissez la valeur de string sur la droite après avoir fait votre choix pour inclure le text que vous souhaitez afficher à votre user lorsque la window d'alerte request des permissions. Caméra / autorisation de bibliothèque de photos