【问题标题】:Load Desktop version of web sites加载网站的桌面版本
【发布时间】:2012-10-07 04:26:11
【问题描述】:

如何加载网站的桌面版本(例如 google、facebook)而不是移动版本?

【问题讨论】:

    标签: iphone objective-c ios uiwebview


    【解决方案1】:

    您为什么要经历所有这些麻烦?这是错误的/LONG 方法。

    只需创建一个NSMutableRequest 并在其中设置useragent 而不是UIWebView。然后只需使用 UIWebView 普通/非私有 loadRequest:-function 加载请求。

    【讨论】:

      【解决方案2】:

      编辑:忽略所有这些。亚尼夫是对的。只需使用- loadRequest: 消息将NSMutableURLRequest 加载到UIWebView 实例,并将"User-Agent" 标头设置为您想要的任何内容。

      NSMutableURLRequest *rq = [NSMutableURLRequest requestWithURL:someUrl];
      [rq setValue:@"Some desktop user-agent" forHTTPHeaderField:@"User-Agent"];
      [webView loadRequest:rq];
      

      供您参考,桌面用户代理字符串的一个不错选择是 Chrome - 它也是基于 WebKit 的,如 Safari,因此特定于 WebKit 的扩展将起作用。所以尝试将用户代理字符串设置为

      Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_2) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.6 Safari/537.11


      原帖:

      你可以尝试欺骗 UIWebView 的用户代理,但我不能保证这样的胖黑客会让你通过 AppStore 的薄门......

      void *object_getIvarPtr(id obj, const char *name)
      {
          Ivar iv = object_getInstanceVariable(obj, name, NULL);
          off_t offset = ivar_getOffset(iv);
          return (char *)obj + offset;
      }
      
      // In some initialization routine, after having created the web view
      id webViewInternal = *(id *)object_getIvarPtr(someWebView, "_internal");
      id webBrowserView = *(id *)object_getIvarPtr(webViewInternal, "browserView");
      id webKitWebView = [webBrowserView webView];
      
      NSString *desktopUAStr = @"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_2) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.6 Safari/537.11"
      [webKitWebView setCustomUserAgent:desktopUAStr];
      

      【讨论】:

      • 非常感谢.. 效果很好.. 只是有一个警告.. 它说instance method -setCustomUserAgent not found (return type default to 'id')
      • @TimTuffley 是的。忽略那个噪音。如果我提供帮助,请让我支持/接受。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多