我想尝试在ios应用程序中使用UIWebView登录网页.但是,我不知道怎么能这样做.我正在展示网站 let url = NSURL(string: "http://m.falalem.com")let request = NSURLRequest(URL: url!)webView.loadRequest(request) 我想使
let url = NSURL(string: "http://m.falalem.com") let request = NSURLRequest(URL: url!) webView.loadRequest(request)
我想使用我的用户名和密码参数登录此页面.
登录页面 – > http://m.falalem.com/Login
登录页面后 – > http://m.falalem.com/User-Info
如何使用uiwebview登录此页面?
请帮忙!
特别是在您的网站上,对于密码世界的用户问候,POST如下所示:
http://m.falalem.com/System/Falalem?LoginUser=c7e28a618886dba19eac0892ad90cf51&RTrn=http%3A%2F%2Fm.falalem.com%2FUser-Info&EPostam=hello&Sifrem=world
您的特定请求标头位于:
LoginUser: c7e28a618886dba19eac0892ad90cf51 RTrn: http://m.falalem.com/User-Info EPostam (user): hello Sifrem (password): world
同样,在Swift中,您将加载具有类似请求的UIWebView.据推测,您正在从UITextFields接收用户名和密码,并将使用它们登录UIWebView:
@IBOutlet weak var usernameTextField: UITextField! // Note: you will want to secure this either by checking the box // in Attributes Inspector or programmatically using // `passwordTextField.secureTextEntry = true` @IBOutlet weak var passwordTextField: UITextField! @IBOutlet weak var webView: UIWebView! ... // fire when the UIButton for "sign in" or "Giriş Yap" is pressed @IBAction func signIn(sender: AnyObject) { var url = NSURL(string: "http://m.falalem.com/System/Falalem") // Note that you will want to use a `NSMutableURLRequest` // because otherwise, you will not be able to edit the `request.HTTPMethod` var request = NSMutableURLRequest(URL: url!) // You need to specifically tell the request what HTTP method to use // (e.g., GET, POST, PUT, DELETE) request.HTTPMethod = "POST" // Is this generated/an API key? If generated per user, use `var` let loginUser: String = "c7e28a618886dba19eac0892ad90cf51" // The page you want to go to after login let redirectPage: String = "http://m.falalem.com/User-Info" // Get the user's credentials from the `UITextField`s var username: String = usernameTextField.text var password: String = passwordTextField.text // Concatenating everything together var userCredentials: String = "EPostam=\(username)&Sifrem=\(password)" var bodyData: String = "\(userCredentials)&RTrn=\(redirectPage)&LoginUser=\(loginUser)" // Encode the bodyData string into a request.HTTPBody = bodyData.dataUsingEncoding(NSUTF8StringEncoding) // load the UIWebView `webView` with this request webView.loadRequest(request) }
现在,如果您没有通过UITextFields获取用户的凭据,您可以继续
let url = NSURL(string: "http://m.falalem.com") let request = NSURLRequest(URL: url!) webView.loadRequest(request)
因为用户只需通过移动网站输入他/她的凭据并以这种方式重定向.
最后,您可能希望使用SSL,因为否则您将密码(或哈希)作为纯文本发送,这是不安全的.