2016-09-14 21 views
5

मैं अपने ऐप पर मोबाइल, डेस्कटॉप संस्करण साइट कार्यक्षमता जोड़ने की कोशिश कर रहा हूं। लेकिन समस्या यह है कि User Agent केवल वेब व्यू लोडिंग से पहले एक बार बदल जाता है। मेरे ऐप में मैं 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")! 
    } 

उत्तर

4

मैं तुम्हें WkWebView बजाय UIWebView उपयोग करने के लिए के रूप में यह तुलनात्मक रूप से अधिक शक्तिशाली

आईओएस 9 की WkWebView है एक सीधा एपीआई

if #available(iOS 9, *) { 
      webViewObj.customUserAgent = "customUserAgentValue" 
} 
+0

धन्यवाद @Durai Amuthan है सलाह देते हैं। HI इस बारे में जानते हैं, लेकिन कुछ कारणों से मुझे 'UIWebView' का उपयोग करने की आवश्यकता है। क्या इसे प्राप्त करने का कोई तरीका है? मैंने एक आईओएस ऐप देखा है जो हमें आईओएस 7 में भी समान कार्यक्षमता देता है। – ZAFAR007

+0

असल में मुझे वेबव्यू से कुकीज़ प्राप्त करने और सहेजने की ज़रूरत है, मैं आसानी से 'UIWebView' से कुकीज़ प्राप्त कर सकता हूं, लेकिन अगर मैं' WkWebView' 'का उपयोग करता हूं तो बहुत जटिल है, जैसे [स्टीफन एंटेंज़] के अनुसार (http://stackoverflow.com/questions/33156567/getting-all-cookies-from-wkwebview)। यही कारण है कि मैं 'UIWebView' – ZAFAR007

+0

का उपयोग क्यों कर रहा हूं, मुझे लगता है कि यह WKWebView में जटिल नहीं है। वास्तव में WKWebView वेबकिट का लाभ लेने के लिए आसान इंटरफ़ेस प्रदान करता है। सीखने की अवस्था खड़ी है। –

संबंधित मुद्दे