0

您好,我在将 device_token 传递给我的参数 swift 4 Xcode 9.2 时遇到问题

视图控制器

 override func viewDidLoad() {
    print("inside viewDidLoad ")
    super.viewDidLoad()
    let appDelegate = UIApplication.shared.delegate as! AppDelegate
    appDelegate.viewController = self
}

func loadRequest(for deviceTokenString : String)
{
    let deviceid = UIDevice.current.identifierForVendor!.uuidString
    print("====== device id =======")
    print(deviceid)
    let testURL = URL(string: "http://www.test.com/user?device=ios&deviceid=" + deviceid + "&devicetoken=" + deviceTokenString

    let testURLRequest = URLRequest(url: testURL!)
    print("before load request")
    print(testURL!)
    RJWebview.loadRequest(testURLRequest)
}

AppDelegate -> didRegisterForRemoteNotificationsWithDeviceToken

viewController?.loadRequest(for: deviceTokenString!)

将数据发送到我正在使用此方法的 SQL 数据库

 let URL_USER_REGISTER = "http://api"
 let parameters: Parameters=[
            "first_name":textFieldFirstName.text!,
            "last_name":textFieldLastName.text!,
            "username":textFieldUsername.text!,
            "email":textFieldEmail.text!,
            "device_token":device_token,]


Alamofire.request(URL_USER_REGISTER, method: .post, parameters: parameters).responseJSON
            {
                response in
                //printing response
                print(response)

                //getting the json value from the server
                if let result = response.result.value {

                    //converting it as NSDictionary
                    let jsonData = result as! NSDictionary

                    //displaying the message in label
                    self.labelMessage.text = jsonData.value(forKey: "message") as! String?
                }
        }

这是输出

SUCCESS: {
    code = 402;
    errors =     {
        "device_token" =         (
            "validation.required"
        );
    };
    message = error;
}

应该传递 device_token 并从参数方法发送,但这里我有 2 个问题

1 - 如果我使用“device_token”:device_token,将给出此错误 Use of unresolved identifier 'device_token'

应该从 func loadRequest

2 - 如果我使用“device_token”:loadRequest,将在输出中返回这个

这是输出

SUCCESS: {
    code = 200;

        "device_token" ="(FUNCTION)" 
           }

请问有什么更好的方法吗??

4

1 回答 1

0

你可以像这样在 Header 中传递你的令牌

    var headers : HTTPHeaders = [:]

    let tokenString = "your token"

    if  (tokenString != nil)
    {
    headers = [
        "Authorization": (tokenString)!
      /// in my case i am passing in Authorization
    ]

    }

    Alamofire.request(serviceName,headers: headers).responseJSON { response in

        //debugPrint(response)
  }
于 2018-03-13T12:53:27.120 回答