2016-12-31 2 views
2

Я запускаю школьный проект, и я новичок в swift3.swift3 webview с сообщением

путем поиска, я знаю, как передать данные от одного вида к пыльников: Passing data from a tableview to webview

В посте выше, он использует HTTP GET запрос передать данные на сайт, а затем перезагрузите webivew:

let URL = NSURL(string: "https://www.example.com?data=\(passData)") 
webView.loadRequest(NSURLRequest(url: URL! as URL) as URLRequest) 

Я вижу некоторые полезные ссылки, например, о коде с почтовым почтовым адресом здесь: HTTP Request in Swift with POST method. В результате код может распечатать ответ http.

Мой вопрос в том, что, как реализовать веб-просмотр с отправкой HTTP post reuqest, например id, name и т. Д. Вместо метода get.

В следующих словах: Я хочу перезагрузить веб-просмотр (например, example.com), и этот веб-сайт будет содержать значение, которое я отправил с помощью HTTP-запроса.

example.com:

$id = $_POST['id']; 
echo $id; 

Спасибо.

ответ

6

Просто создайте URLRequest для POST, как показано на второй линии, и передать его на webView:

var request = URLRequest(url: URL(string: "http://www.example.com/")!) 
request.httpMethod = "POST" 
let postString = "id=\(idString)" 
request.httpBody = postString.data(using: .utf8) 
webView.loadRequest(request) //if your `webView` is `UIWebView` 

(Рассмотрите возможность использования WKWebView вместо UIWebView.)

Вам может понадобиться idString быть escaped, если он содержит некоторые специальные символы.


Кстати, код две строки:

let URL = NSURL(string: "https://www.example.com?data=\(passData)") 
webView.loadRequest(NSURLRequest(url: URL! as URL) as URLRequest) 

не кажется, хороший Swift 3 код. Это можно записать в виде:

let url = URL(string: "https://www.example.com?data=\(passData)")! 
webView.loadRequest(URLRequest(url: url)) 
+0

Там другое решение, если выше не работает: https://stackoverflow.com/a/44951545/4260691 – OhadM

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