2015-06-04 4 views
2

Я хочу попытаться войти в веб-страницу, используя UIWebView в приложении ios. Однако я не знаю, как я могу это сделать. Я показываю веб-сайт сКак войти на сайт с помощью uiwebview с быстрым?

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 ?? Пожалуйста, помогите!

ответ

6

Регистрация на веб-странице в целом (с использованием JS, PHP и т. Д.) Использует запрос POST, верно?

В частности на своем сайте, для пользователя hello с паролем worldPOST выглядит следующим образом:

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 с аналогичным запросом. Предположительно, вы получаете имя пользователя и пароль от UITextField с и собираются использовать их для входа в 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) 
} 

Теперь, если вы не получаете учетные данные пользователя через UITextField с, вы можете просто перейти с

let url = NSURL(string: "http://m.falalem.com") 
let request = NSURLRequest(URL: url!) 
webView.loadRequest(request) 

потому что пользователь будет просто вводить свои учетные данные через мобильный сайт и перенаправляться таким образом.

Наконец, вы, вероятно, захотите использовать SSL, потому что иначе вы отправляете пароль (или хэш) как обычный текст, который не является безопасным.

+0

Я решил эту проблему, но вы также правы. Благодарим вас за ваш ответ @ майкл-recachinas. –

+1

@EmreBEGEN вы решили его по-другому? Мне бы хотелось услышать, как! Кроме того, нет проблем. :) –

Смежные вопросы