在App中和应用程序内的webview中共享会话 - IOS Swift

时间:2015-07-10 05:53:18

标签: ios swift uiwebview

您好我有使用swift编写的IOS应用程序已登录,并且在成功登录后,该应用程序将转移到具有webView的活动。

应用程序和网站共享相同的API。登录过程是指我提供正确的usernamepassword api return token

我使用Alamofire框架作为http请求

正确管理了应用登录
Alamofire.request(.POST, url, parameters: param).responseJSON{ (request, response, JSONdata, error) in
            if error != nil {
                let result = ["Error" : "Unexpected Error!"]
                callback(result: result)
            } else {
                if response?.statusCode == 401 {


                        println(401)
                        let result = ["Error" : "User not found!"]
                        callback(result: result)


                } else if response?.statusCode == 200 {
                    let responseDict = JSONdata as! NSDictionary
                    callback(result:responseDict)
                }
            }
        }

这是我显示的webview代码

let requestURL = NSURL(string: "myURL")
let request = NSMutableURLRequest(URL: requestURL!)

webView.loadRequest(request)

我需要在webview中显示它正在发生的网站,但我需要与webview分享会话,因为他们与应用程序共享相同的API。

有谁可以帮助我?如何实现这一点。

2 个答案:

答案 0 :(得分:0)

如果您想将令牌作为正文传递给请求您可以执行以下操作。它在Objective C中,将其转换为swift。

NSURL *url = [NSURL URLWithString: @"http://your_url.com"];
NSString *body = [NSString stringWithFormat: @"token=%@",varToken];
NSMutableURLRequest *request = [[NSMutableURLRequest alloc]initWithURL: url];
[request setHTTPMethod: @"POST"];
[request setHTTPBody: [body dataUsingEncoding: NSUTF8StringEncoding]];
[webView loadRequest: request];

答案 1 :(得分:0)

为了在应用程序和Web视图之间共享会话,需要在它们之间共享cookie,因此在加载Web视图之前,请先设置cookie。

在此函数中,传递您的cookie并将您的请求值设置为rate_id

myRequest