Ich versuche, mobile, Desktop-Version Website-Funktionalität in meiner App hinzuzufügen. Aber das Problem ist, dass User Agent
nur sofort vor dem Laden von WebView ändern. In meiner App füge ich Button für Mobile
und zweiten für Desktop
Version Website hinzu. UIWebView
Wählen Sie User Agent
nur beim Start.Kann jemand mir sagen, gibt es eine Möglichkeit, User Agent
zur Laufzeit zu ändern. DankÄnderung des Benutzeragenten zur Laufzeit
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")!
}
Dank @Durai Amuthan. HI weiß darüber, aber aus irgendwelchen Gründen muss ich 'UIWebView' verwenden. Gibt es einen Weg, dies zu erreichen? Ich habe eine iOS-App gesehen, die uns dieselbe Funktionalität auch in iOS 7 bietet. – ZAFAR007
Grundsätzlich muss ich Cookies von webView holen und speichern, ich kann leicht Cookies von 'UIWebView' bekommen, aber zu kompliziert, wenn ich' WkWebView' verwende nach [Stefan Arentz] (http://stackoverflow.com/questions/33156567/getting-all-cookies-from-wkwebview). Das ist der Grund, warum ich 'UIWebView' verwende – ZAFAR007
Ich denke nicht, dass es in WkWebView kompliziert ist. Tatsächlich bietet WkWebView eine einfache Schnittstelle, um WebKit zu nutzen. Die Lernkurve ist steil, das ist alles. –