当应用程序从后台回到前台时,iOS权限警报不显示

时间:2019-05-31 15:37:19

标签: ios swift

我正在使用其第一个屏幕使用SFAuthenticationSession使用Web身份验证会话的应用程序

常规行为:应用启动后,它会以ios默认身份验证提示“我的应用xxx希望使用“ testauthentication.com”登录”提示我,并带有继续和取消选项。

此警报是iOS框架处理的默认弹出窗口

现在我的问题是:当应用启动并显示此警报时,如果我锁定屏幕并再次将其解锁-弹出窗口消失并且用户被阻止,前进的唯一方法是杀死并重新启动应用

我的问题是如何再次显示警报对话框,以便用户可以继续

我想到了当应用程序从后台来回移动到前景时重新加载视图。但是弹出窗口仅出现一次,但并非每次都出现。不确定这是否也是正确的方法。请指教

func applicationDidEnterBackground(_ application: UIApplication) {
    AppHelper.sharedInstance.isAppLaunchedForFirstTime = false
}

func applicationDidBecomeActive(_ application: UIApplication) {
    let isUserLoggedIn = AppHelper.sharedInstance.isUserLoggedIn ?? false     
    let appLaunchedForFirstTime = AppHelper.sharedInstance.isAppLaunchedForFirstTime ?? false
    if !appLaunchedForFirstTime && !isUserLoggedIn {
        if let viewController = UIApplication.shared.keyWindow!.rootViewController as? LoginViewController {
            viewController.navigateToLogin(from: viewController)
        }
    }
}

因此,当锁定的applicationDidEnterBackground会被调用并将bool设置为false 当再次回到前台时,将调用applicationDidBecomeActive并执行viewController.navigateToLogin(from:viewController)。但这并不会每次都弹出

另一个问题是方法navigationToLogin(from:viewController)实际上将新的viewcontroller推入堆栈。因此,不是重新加载即时消息即可创建重复项,这是最糟糕的做法。但是我该如何处理这些情况。请指教

0 个答案:

没有答案