如何使iOS UIWebView正确显示移动网站?

我是iOS应用程序开发的新手,我只是尝试使用UIWebView在我的应用程序中显示移动网站,并不是很成功。

我所做的只是一些简单的Xcode项目configuration和编码,我在一些Googlesearch过程中发现:

  1. 使用Single View Application模板在Xcode中创build一个新的iOS应用程序项目。

  2. Web视图Object Library Main.storyboardView Controller场景中。

  3. 按住Control键的同时,将Web视图View Controller场景拖到ViewController.h编辑器,产生如下的源代码行:

     @property (weak, nonatomic) IBOutlet UIWebView *myWebView; 
  4. 在ViewController.m中添加下面的代码:

     - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. NSURL *url = [NSURL URLWithString:@"http://www.amazon.com"]; [self.myWebView loadRequest:[NSURLRequest requestWithURL:url]]; } 

这就是我所做的(也包括那些教程告诉我的)。 在我构build并运行应用程序(在模拟器和真正的iPhone设备上)后,网站确实加载了应用程序的视图(并且加载了移动版本而不是PC版本),但是它显示的网站好像视图很多大于实际的iPhone屏幕。 这里是一个screeshot(亚马逊在这种情况下,但其他网站基本相同):

在这里输入图像说明

我应该怎么做才能使iOS UIWebView正确显示移动网站?


刚刚尝试Dipen Chudasama关于禁用“用户大小类”选项的build议,所有这些build议的第一次,结果确实有点改变(从左alignment到中心alignmentsorting),但仍然不是我自己寻找。 这是截图:

在这里输入图像说明


编辑

感谢您热心的人提供的所有build议。 在UIWebView中加载像amazon.com这样的网站应该是一件相当容易的事情,据我所知,然而,我没有成功的提出任何build议。

如果有人能够通过Github或者类似的方式与我分享一个简单的xcode项目(从最新版本的xcode工具链开始),只需要一个可以正确加载amazon.com的UIWebView就可以了。 这样我可以做一行一行的差异,并可能能够find我在我自己的项目中做错了。

UIWebView有一个名为“scalesPageToFit”的属性:

 self.myWebView.scalesPageToFit = YES; self.myWebView.contentMode = UIViewContentModeScaleAspectFit; 

应该做的伎俩。

您可以通过此UIWebview属性来缩放页面以适合屏幕宽度UIWebview webView.scalesPageToFit = YES;

否则,您可以在UIWebView运行一个js命令来执行该比例:

 NSString *js = [NSString stringWithFormat:@"document.body.style.zoom = 0.8;"]; [webView stringByEvaluatingJavaScriptFromString:js]; 

我知道了..你只是设置故事板iPhone大小的观点,而不是任何大小,意味着禁用使用大小类checkbox,看看,这将工作.. 🙂

在这里输入图像说明

 - (void)viewDidLoad { [super viewDidLoad]; NSURL *url = [NSURL URLWithString:@"http://www.amazon.com"]; [self.myWebView loadRequest:[NSURLRequest requestWithURL:url]]; } Thats it, Try this one only. 

要么

  you have to set appropriate constraint for this. 

我有同样的问题,你@goodbyeera,然后意识到我没有设置UIWebViewAutoLayout约束。 所以当WebView加载的时候对于iphone屏幕来说太大了。 通过添加约束来适应UIWebView到屏幕固定它。 希望这可以帮助你。