无法将json生成的OTP作为sms发送到Swift中的phoneNumber

无法将json生成的OTP作为sms发送到Swift中的phoneNumber,json,swift3,sms,phone-number,one-time-password,Json,Swift3,Sms,Phone Number,One Time Password,我在phoneNumTextField中添加电话号码,之后当我点击registerButton时,我需要将otp作为sms发送到该电话号码。但在这里我无法发送otp到手机短信。我得到的是json格式的otp,我将otp存储在otpField中,我需要将otp发送到那个电话号码。我已经导入了import MessageUI,并将MFMessageComposeViewControllerDelegate添加到viewcontroller 这是我的密码: func registerService()

我在phoneNumTextField中添加电话号码,之后当我点击registerButton时,我需要将otp作为sms发送到该电话号码。但在这里我无法发送otp到手机短信。我得到的是json格式的otp,我将otp存储在otpField中,我需要将otp发送到那个电话号码。我已经导入了import MessageUI,并将MFMessageComposeViewControllerDelegate添加到viewcontroller

这是我的密码:

func registerService(){

print("register tapped")

let parameters = ["mobile_number": Int(phoneNumTextField.text ?? ""),] as? [String : Any]

let url = URL(string: "https://dev.anyemi.com/webservices/anyemi/register")
var req =  URLRequest(url: url!)
req.httpMethod = "POST"
req.addValue("application/json", forHTTPHeaderField: "Contet-Type")
req.addValue("application/json", forHTTPHeaderField: "Accept")

guard let httpBody = try? JSONSerialization.data(withJSONObject: parameters, options: .prettyPrinted) else {return}
req.httpBody = httpBody

let session = URLSession.shared

session.dataTask(with: req, completionHandler: {(data, response, error) in
    if let response = response {
        // print(response)
    }
    if let data = data {

        do{
            let json = try JSONSerialization.jsonObject(with: data, options: .mutableContainers) as! [String: Any]
            print("the json regggggggggggis \(json)")

            self.otpField = json["otp"] as? Int

            if (MFMessageComposeViewController.canSendText())
            {
                let controller = MFMessageComposeViewController()
                controller.body = self.otpField as? String
                controller.recipients = [self.phoneNumTextField.text] as! [String]

                controller.messageComposeDelegate = self
                self.present(controller, animated: true, completion: nil)
            }
            else
            {
                print("Error!!!!!")
            }
            DispatchQueue.main.async {
                self.otpTextField.text = self.otpField as? String
            }

        }catch{
            print("error")
        }
    }
}).resume()
}


 @IBAction func registerButton(_ sender: Any) {
        registerService()
 }
当我点击注册表按钮时 MFMessageComposeViewController将转到其他部分,我收到错误

这是正确的还是我需要添加任何框架的otp发送短信到消息框


请帮我解决这个问题。

我不这么认为,这是代码的问题


您不能在模拟器设备上使用messageController而使用real device,或者您正在不支持消息的设备上测试应用程序。

请帮助我解决上述问题,或者建议我是否有任何框架。我是ios新手,我会学习。你们正在模拟器上调试应用程序?是的,我正在模拟器上测试应用程序。我需要一个澄清,那就是,我们是否可以通过使用MFMessageComposeViewController将OTP作为短信发送到手机,或者我是否需要添加任何框架以将OTP短信发送到手机,这是我第一次处理OTP,在我仅使用电子邮件和密码进行注册之前。请澄清我的疑问。在理想情况下,您的otp应该由服务器发送,如果通过MFMessageController发送otp是您的要求,您可以这样做,如果这是一个不好的做法,苹果会在应用程序审查中告诉你。是的,我从json获得OTP,我可以从xcode控制台读取OTP,我可以注册,但我需要将OTP发送到手机短信,这是我的要求。我告诉你,不要将json发送号码发送到服务器,而是让服务器将其发送到手机号码如果答案解决了您的问题,请接受答案;如果您有错误原因,请接受答案:。