2017-10-09 3 views
1

J'ai une application qui a été rejetée du magasin pour ne pas afficher la boîte de dialogue de confidentialité lors de la sélection d'une photo avec UIImagePickerController. J'ai essayé un projet différent et j'ai collé mon code ci-dessous, je ne reçois toujours aucune alerte de confidentialité.iOS 11 UIImagePickerController n'affiche pas l'alerte de confidentialité - comment forcer la boîte de dialogue d'autorisation d'affichage?

L'utilisateur appuie sur le bouton pour sélectionner une photo, une liste de rouleaux de caméra s'affiche, une image peut être sélectionnée. Tout fonctionne, sauf l'alerte avant cette opération demandant à l'utilisateur d'autoriser l'opération n'est pas affichée.

Lors de la soumission de l'application, aucune erreur ou avertissement n'a été signalé. Seule l'équipe chargée de la révision de l'application a refusé de laisser passer l'application pour ne pas afficher l'alerte.

Comment puis-je forcer l'application à afficher une alerte de confidentialité avant d'accéder à la photothèque?

- (IBAction)pickAction:(id)sender { 

    UIImagePickerController *imagePickerController = [[UIImagePickerController alloc] init]; 
    imagePickerController.sourceType = UIImagePickerControllerSourceTypePhotoLibrary; 
    imagePickerController.delegate = self; 
    [self presentViewController:imagePickerController animated:YES completion:nil]; 

} 

<key>NSPhotoLibraryUsageDescription</key> 
    <string>To pick photos for analysis</string> 

J'ai essayé tout nouveau projet avec swift3 et aussi ne reçois pas la vie privée/permission dialogue d'alerte avec le code ci-dessous:

var imagePicker = UIImagePickerController() 

    @IBAction func btnClicked() { 

     if UIImagePickerController.isSourceTypeAvailable(.savedPhotosAlbum){ 
      print("Button capture") 

      imagePicker.delegate = self 
      imagePicker.sourceType = .savedPhotosAlbum; 
      imagePicker.allowsEditing = false 

      self.present(imagePicker, animated: true, completion: nil) 
     } 
    } 

    func imagePickerController(picker: UIImagePickerController!, didFinishPickingImage image: UIImage!, editingInfo: NSDictionary!){ 
     self.dismiss(animated: true, completion: {() -> Void in 

     }) 

//  imageView.image = image 
    } 

Répondre

1

iOS 11 introduit nouveau cadre « Photos » avec objet photothèque qui peut demander explicitement les autorisations de l'utilisateur:

Vous devez utiliser comme ceci:

import Photos 
class ViewController: UIViewController { 
    override func viewDidLoad() { 
     PHPhotoLibrary.requestAuthorization { (status) in 
      switch status { 
      case .authorized: 
       print("authorized") 
      case .denied: 
       print("denied") 
      default: 
       print("default") 
      } 
     } 
    } 
}