UIWebView加载桌面版网站不是手机版

时间:2013-11-18 17:16:35

标签: ios iphone uiwebview

ViewController A上有一个按钮,按下时应该带我到ViewControllerB,它有一个UIWebView。该Web视图应该加载网站的桌面版本。

以下是我采取的步骤:

  1. ViewController A - 触摸按钮

  2. ViewController B - UIWebView加载网站的移动版本而不是桌面版本。

  3. NavigationController - 触摸后退按钮 - >将我们带回ViewController A

  4. ViewController A - 再次触摸按钮

  5. ViewController B - UIWebView根据需要加载桌面版本。

  6. 第一次(第2步),UIWebView没有加载正确的URL,第二次(第5步)它加载了正确的URL。

    查看A -

    -(IBAction)ButtonPressed:(id)sender{
    
    HomeAppDelegate *myDelegate = (HomeAppDelegate *)[[UIApplication sharedApplication]delegate];
    
    NSString *titleCaption;WebPageViewController *chosenViewController = [[WebPageViewController alloc] initWithNibName:@"WebPageViewController" bundle:nil];
    
    titleCaption = @"Web PAGE";
    
    chosenViewController.url = [NSURL URLWithString:@"http://www.mydesktopwebsite.com"];
    
    [self.navigationController pushViewController:chosenViewController animated:YES];
    
    myDelegate.navBar.topItem.title  = titleCaption;
    
    [chosenViewController release];
    }
    

    查看B - WebPageViewController.h

    @property (retain, nonatomic) IBOutlet UIWebView *WebView;
    @property (retain, nonatomic) NSURL *url;
    

    WebPageViewController.m

    @synthesize url;
    
    - (void)viewDidLoad{
    [super viewDidLoad];
    
    [self.WebView loadRequest:[NSURLRequest requestWithURL:self.url]];}
    

    (来自jcesar的编辑说明:您编辑了我的答案,但我认为您想编辑您的问题,所以我添加了您在答案中输入的代码)

      

    我使用的代码显然是错误的。

    NSDictionary *dictionary = @{ @"UserAgent" : @"Safari iOS 5.1 - iPhone"}; 
    [[NSUserDefaults standardUserDefaults] registerDefaults:dictionary];
    

1 个答案:

答案 0 :(得分:10)

它依赖于网络,但您可以尝试更改用户代理以使服务器认为它是桌面浏览器

要更改“UserAgent”默认值,请在应用启动时运行此代码:

NSDictionary *dictionary = [NSDictionary dictionaryWithObjectsAndKeys:@"Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:25.0) Gecko/20100101 Firefox/25.0", @"UserAgent", nil];
[[NSUserDefaults standardUserDefaults] registerDefaults:dictionary];