Я пытаюсь добавить мобильные, настольные версии сайта на моем приложении. Но проблема в том, что User Agent
только сразу меняются перед загрузкой webView. В моем приложении я добавляю к кнопке один для Mobile
и второй для сайта версии Desktop
. UIWebView
выбрать User Agent
только на старте. Может кто-нибудь сказать мне, есть ли способ изменить User Agent
во время выполнения. БлагодаряИзменение агента пользователя во время выполнения
var defaultUserAgent = String()
@IBOutlet weak var webView: UIWebView!
@IBOutlet weak var activityIndicator: UIActivityIndicatorView!
override func viewDidLoad() {
super.viewDidLoad()
let url = NSURL(string: "https://www.youtube.com")
let request = NSURLRequest(URL: url!)
activityIndicator.hidesWhenStopped = true
activityIndicator.startAnimating()
webView.loadRequest(request)
}
@IBAction func mobile(sender: AnyObject) {
NSUserDefaults.standardUserDefaults().registerDefaults(["UserAgent": defaultUserAgent])
print(defaultUserAgent)
let url = NSURL(string: "https://www.youtube.com")
let request = NSURLRequest(URL: url!)
activityIndicator.hidesWhenStopped = true
activityIndicator.startAnimating()
webView.loadRequest(request)
}
@IBAction func desktop(sender: AnyObject) {
NSUserDefaults.standardUserDefaults().registerDefaults(["UserAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.109 Safari/537.36"])
let url = NSURL(string: "https://www.youtube.com")
let request = NSURLRequest(URL: url!)
activityIndicator.hidesWhenStopped = true
activityIndicator.startAnimating()
webView.loadRequest(request)
}
func webViewDidFinishLoad(webView: UIWebView) {
activityIndicator.stopAnimating()
print(webView.stringByEvaluatingJavaScriptFromString("navigator.userAgent"))
defaultUserAgent = webView.stringByEvaluatingJavaScriptFromString("navigator.userAgent")!
}
Благодаря @Durai Amuthan. Я знаю об этом, но по некоторым причинам мне нужно использовать 'UIWebView'. Есть ли способ достичь этого? Я видел одно приложение для iOS, которое дает нам такую же функциональность и в iOS 7. – ZAFAR007
В основном мне нужно получать и сохранять файлы cookie из webView, я могу легко получать файлы cookie из 'UIWebView', но слишком сложно, если я использую' WkWebView', например в соответствии с [Stefan Arentz] (http://stackoverflow.com/questions/33156567/getting-all-cookies-from-wkwebview). Вот почему я использую 'UIWebView' – ZAFAR007
Я не думаю, что он сложный в WkWebView. На самом деле WkWebView обеспечивает легкий интерфейс для использования WebKit. Кривая обучения крутая, вот и все. –