Мое приложение поддерживает открытие документов, таких как изображения, PDF-файлы из других приложений.Идентификатор Tocuh реализован, как показано ниже, он запрашивается, когда приложение выходит на передний план
NotificationCenter.default.addObserver(forName: .UIApplicationWillEnterForeground, object: nil, queue: .main) { (notification) in
LAContext().evaluatePolicy( .deviceOwnerAuthenticationWithBiometrics, localizedReason: "Request Touch ID", reply: { [unowned self] (success, error) -> Void in
if (success) {
} else {
}
})
. Теперь запрос на Touch Id работает нормально, когда пользователь открывает приложение из Фона или перезапускается.Эта проблема возникает, когда приложение открывается из другого приложения, например при нажатии на URL-адрес приложения, при совместном использовании документов из внешнего приложения с помощью параметра «Копировать в MyApp», где метод открытого URL-адреса AppDelegate вызывается, как показано ниже
public func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool {
//validate and save url
return true
}
Проблема заключается в том, что когда приложение запускается из внешнего приложения, вызывается вышеуказанный метод open url, а также вызывается наблюдатель UIApplicationWillEnterForeground , как и ожидалось.Но в этом наблюдателе UIApplicationWillEnterForeground LAContext () .valuPolicy неожиданно завершается с ошибкой «Звонящий переместился в фон».
Обратите внимание, что проблема может быть замечена на iOS 11.0.3, 11.3 , тогда как онане воспроизводится с iOS 11.4 или <11 </p>