如何更改已创建的UIIWebView的UserAgent?

时间:2014-03-14 16:42:27

标签: ios objective-c cocoa-touch

更改UserAgent可以很好地完成:

[[NSUserDefaults standardUserDefaults] registerDefaults:@{ @"UserAgent": @"My String" }];

如果我在调用上面的代码后创建一个新的UIWebView,UserAgent确实会改变。但是,假设我想允许用户更改UserAgent,刷新页面,并让新的UserAgent生效。以上这条线似乎没有这样做。我必须创建一个新的UIWebView并将其URL设置为之前的UIWebView的URL并启动该请求。有更好的方法吗?

要点:

  1. 将UserAgent设置为默认值。
  2. 创建一个uiwebview
  3. 转到www.whatsmyuseragent.com并注意UserAgent设置为您想要的。
  4. 将UserAgent再次设置为默认值为其他内容。
  5. 刷新UIWebView中的页面
  6. UserAgent不是新值。
  7. 我试着打电话

    [[NSUserDefaults standardUserDefaults] synchronize];

    我设置UserAgent之后似乎无法解决问题。

1 个答案:

答案 0 :(得分:0)

看起来像UIWebView加载了一个页面。即已调用loadRequest,它从默认值中读取UserAgent的值,然后将UIWebView永远设置为该UserAgent。如果不使用私有API,似乎没有办法在不重新创建UIWebView的情况下更改UserAgent。