1
我有一個應用程序,用戶可以加載不同的網址。問題是,每次用戶加載一個URL,KINWebBrowser顯示煩人的cookies警告消息。有可能以任何方式自動接受這些cookie或刪除這些消息?Swift避免網站的Cookies警告
我有一個應用程序,用戶可以加載不同的網址。問題是,每次用戶加載一個URL,KINWebBrowser顯示煩人的cookies警告消息。有可能以任何方式自動接受這些cookie或刪除這些消息?Swift避免網站的Cookies警告
您可以通過在加載後在網頁上運行一些Javascript來擺脫不需要的元素。
KINWebBrowser定義KINWebBrowserDelegate
協議調用該方法didFinishLoadingURL
在頁面加載時,所以我們從那裏運行的JavaScript:
func removeClassFromWebpage(browser: KINWebBrowserViewController, className: String) {
let js = "var elements = document.getElementsByClassName('\(className)');" +
"while(elements.length > 0) { " +
" elements[0].parentNode.removeChild(elements[0]); " +
"} "
if (browser.uiWebView != nil) { // iOS <9 browser class
browser.uiWebView!.stringByEvaluatingJavaScriptFromString(js)
}
else if (browser.wkWebView != nil) { // iOS 9 browser class
browser.wkWebView!.evaluateJavaScript(js, completionHandler: nil)
}
}
func webBrowser(webBrowser: KINWebBrowserViewController!, didFinishLoadingURL URL: NSURL!) {
removeClassFromWebpage(browser: webBrowser, className: "cookiePolicy")
// Replace "cookiePolicy" with whatever the class name of the
// cookie popup is.
}
你必須做一些偵探在網頁源您的應用程序訪問找出cookie彈出窗口的類名是什麼。
如果你想利用在刺卸下所有cookie的彈出窗口,Adblock Plus的具有典型的cookie彈出班在這裏的列表:http://www.kiboke-studio.hr/i-dont-care-about-cookies/abp/
你不得不做餅乾彈出類的列表,並循環通過它呼籲每個人removeClassFromWebpage
。
我應該把你的代碼放在app的delegate.swift文件中?我已經這樣做了,但cookie策略警告顯示相同... – Swift1
此代碼將在您的KINWebBrowserViewController的**委託**中進行。 [這是對代表的很好的介紹。](https://www.andrewcbancroft.com/2015/04/08/how-delegation-works-a-swift-developer-guide/)你需要做什麼:(1 )將協議'KINWebBrowserDelegate'添加到您已經創建的類中或爲其創建一個新類。 (3)實現我的方法上面的任何類是委託 (3)將KINWebBrowserViewController的**委託**屬性設置爲委託類的實例。 –
我有1)將協議添加到我的ViewController好2)實現你的方法3)我如何可以將KINWebBrowserViewController的委託屬性設置爲委託類的實例?例如ViewController? – Swift1