0

我正在使用Digits框架制作一个应用程序,供用户使用他们的电话号码登录。话虽如此,我试图找到一种方法来继续我的下一个观点通过在我的故事板中创建嵌入 UINavigationController(到 ViewController中)并添加一个连接到我的下一个 View 的按钮继续到我的下一个视图的方法。我意识到这不是成功认证后的方法。请查看我的代码,让我知道您的想法/建议:

func didTapButton(sender: AnyObject) {
    let digits = Digits.sharedInstance()
    let configuration = DGTAuthenticationConfiguration(accountFields: .DefaultOptionMask)
    configuration.phoneNumber = "+345555555555"
    digits.authenticateWithNavigationViewController(navigationController, configuration: configuration, 
            completionViewController:  completionViewController) 
}
4

2 回答 2

1

现在我更了解问题了,请尝试以下操作:

import UIKit
import DigitsKit
class LoginViewController: UIViewController {

override func viewDidLoad() {
        let digitsButton = DGTAuthenticateButton(authenticationCompletion: { (session, error) in
             if (session != nil) {
                print("Your Digits User ID is " + session.userID)
                 let map = MapVC()
                self.presentViewController(map, animated: true, completion: nil)
             }
             else {
                print(error.localizedDescription)
            }
        })
        self.view.addSubview(digitsButton)
    }
}

或者可以使用:

import UIKit
import DigitsKit
class LoginViewController: UIViewController {

override func viewDidLoad() {
    let digitsButton = DGTAuthenticateButton(authenticationCompletion: { (session, error) in
        if (session != nil) {
            print("Your Digits User ID is " + session.userID)
            self.performSegueWithIdentifier("mapVC", sender: self)
        }
        else {
            print(error.localizedDescription)
        }
    })
    self.view.addSubview(digitsButton)
}
}

我希望这有效:)

于 2016-07-22T00:06:16.540 回答
0

我认为您的代码示例已从 Digits 文档(https://docs.fabric.io/apple/digits/sign-in-with-phone-number.html#alternative-navigation-flows)中的示例中提取。这一切对我来说都是正确的,我认为你在正确的轨道上。

Digits 可以让您创建一个帐户或使用电话号码登录应用程序。

当您运行代码时,这是导航控制器中的正确代码:

func didTapButton(sender: AnyObject) {
let digits = Digits.sharedInstance()
let configuration = DGTAuthenticationConfiguration(accountFields: .DefaultOptionMask)
configuration.phoneNumber = "+345555555555"
digits.authenticateWithNavigationViewController(navigationController, configuration:configuration, completionViewController:completionViewController)
}

这将在当前视图控制器的顶部弹出一个模式。用户将注册并验证或登录,当 Digits 对此进行身份验证时,它将弹出您的视图控制器completionViewController

关于这个问题,在 UINavigationBar 添加一个按钮并创建一个 UIAction 以在按下时调用 didTapButton 函数。然后这将触发您希望的身份验证。

如果您不想与 NavigationViewController 一起使用,请使用:

func didTapButton(sender: AnyObject) {
    let digits = Digits.sharedInstance()
    digits.authenticateWithCompletion { (session, error) in
        // Inspect session/error objects
    }
}

然后你必须自己处理成功验证时弹出视图控制器。

您不能创建自己的表单来使用数字,它始终是一个弹出顶部的模式,但是您可以将其格式化为看起来像您的应用程序。

configuration.phoneNumber = "+345555555555"也许令人困惑。这只是在数字表格中可选地预先填写电话号码。数字会将 +34 识别为西班牙语,将 5555555555 识别为电话号码。如果您不想这样删除代码行,或者您可以删除电话号码,只留下国家代码和数字将仅在表格中预先填写国家代码。

您还可以获取 Digits 来请求用户的电子邮件地址。这是通过更改let configuration = DGTAuthenticationConfiguration(accountFields: .DefaultOptionMask)let configuration = DGTAuthenticationConfiguration(accountFields: .Email)

有关如何成功实施的完整示例,请参阅此页面:https ://fabric.io/kits/ios/digits/features

我希望这会有所帮助,请随时提出任何其他问题:)

于 2016-07-20T23:53:57.057 回答