xcode - iOS10相机权限设置了之后用户点击不允许crash
PHPz
PHPz 2017-04-18 09:45:17
0
1
744

这两个Key设置好之后应该是相册和摄像头都可以调用的 但是现在的情况是相册的弹窗出来之后用户点击不允许就没事 访问相机用户点击不允许就会闪退……第二次进入APP就是正常提醒在隐私里开启授权了。
而且第一次出现弹出提示是否允许访问相机点击允许之后很长一段时间的黑屏甚至有的时候并不能打开相机 第二次有了授权之后这个黑屏就消失了
是我少了什么设置吗 相机这个不论点允许还是不允许都有问题

这两种情况遇到过吗?

PHPz
PHPz

学习是最好的投资!

répondre à tous(1)
伊谢尔伦

J'ai rencontré le même problème.
Lorsque je l'ai reproduit à nouveau et connecté à une vraie machine pour le débogage, j'ai défini un point d'arrêt global et j'ai constaté que le crash s'était produit dans le cadre de la fenêtre d'alerte personnalisée.
Après avoir fouillé, j'ai découvert qu'il n'y avait pas de pointeur nul dans alertWindow.
La raison est évidente. Un crash s'est produit lors de l'utilisation de l'interface utilisateur. La raison était que l'interface utilisateur n'était pas exploitée sur le thread principal.
Retournez au code et voyez le jugement d'appeler l'état de la caméra

let authStatus = AVCaptureDevice.authorizationStatusForMediaType(AVMediaTypeVideo)
        switch authStatus {
        case .NotDetermined:
            AVCaptureDevice.requestAccessForMediaType(AVMediaTypeVideo, completionHandler: { (granted) in
                if (granted) {
                    //第一次用户接受
                    if let tmp = handle {
                        tmp()
                    }
                }else{
                    //用户拒绝 *** 问题在这里,如果第一次用户拒绝了,回调并不在主线程。(注意,此时的case分支在用户并未决定里)
                    if let tmp = limitHandle {
                        dispatch_async(dispatch_get_main_queue(), {
                            tmp()
                        })
                    }
                }
            })
        case .Restricted: // 无法访问
            dLog("没有设备")
        case .Denied: // 用户拒绝
            if let tmp = limitHandle {
                dispatch_async(dispatch_get_main_queue(), {
                    tmp()
                })
            }
        case .Authorized: // 开启授权
            if let tmp = handle {
                tmp()
            }
        }

Ce problème peut être résolu en plaçant le rappel là où l'utilisateur décide en premier s'il accepte d'utiliser l'album dans le fil de discussion principal.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal