Добавление куки в webview.load в Swift - PullRequest
0 голосов
/ 14 марта 2019

Я пытался добавить веб-страницу в свое приложение (это работает), но когда я пытался добавить куки, он выдал мне такую ​​ошибку: «Невозможно вызвать« load »со списком аргументов типа» (URLRequest, с: HTTPCookie?)''

        let cookie1 = HTTPCookie(properties: [
        HTTPCookiePropertyKey.domain: "example.de",
        HTTPCookiePropertyKey.path: "/example/",
        HTTPCookiePropertyKey.secure: true,
        HTTPCookiePropertyKey.name: "PHPSESSID",
        HTTPCookiePropertyKey.value: "example"]) //this are the cookies I set 

    let example = URL(string:"example.de")
    let example2 = URLRequest(url: example!)
        webView.load(example2, with: cookie1) //here I tried to inject the cookie to the webviewload, 

Что я сделал не так, кто-нибудь знал, что я должен изменить?

1 Ответ

0 голосов
/ 14 марта 2019

WKWebView имеет два метода загрузки, которые принимают разные параметры

func load(Data, mimeType: String, characterEncodingName: String, baseURL: URL) -> WKNavigation?

Устанавливает содержимое веб-страницы и базовый URL.

func loadFileURL(URL, allowingReadAccessTo: URL) -> WKNavigation?

Переходит к запрошенному URL-адресу файла в файловой системе

У него нет метода загрузки, который принимает параметр cookie. Это то, что вызывает вашу ошибку.

Чтобы это исправить, вам нужно использовать правильные способы загрузки файлов cookie с помощью WKWebView. Вот несколько хороших примеров здесь

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

let config = WKWebViewConfiguration()  
config.processPool = WKProcessPool()  
let cookies = HTTPCookieStorage.shared.cookies ?? [HTTPCookie]()  
cookies.forEach({ config.websiteDataStore.httpCookieStore.setCookie($0, completionHandler: nil) })  

let wkWebView = WKWebView(frame: bounds, configuration: config)  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...