我是iOS应用开发的新手,我只是尝试使用 UIWebView 在我的应用中显示移动网站并且不太成功。
我所做的只是在Google搜索过程中发现的一些最小的Xcode项目配置和编码:
使用Single View
Application
模板在Xcode中创建一个新的iOS应用程序项目。
将网络视图从Object Library
拖到View Controller
Main.storyboard
的场景。
按住Control键的同时,将网络视图从View
Controller
场景拖到ViewController.h
编辑器,
像这样的源代码行:
@property (weak, nonatomic) IBOutlet UIWebView *myWebView;
在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]];
}
这就是我所做的一切(以及那些教程告诉我的所有内容)。在我构建并运行应用程序(在模拟器和真实的iphone设备上)之后,该网站确实加载了应用程序的视图(并且确实加载了移动版本而不是PC版本),但它显示了网站,就好像视图很多大于实际的iPhone屏幕。这是一个screeshot(在这种情况下亚马逊,但其他网站基本相同):
如何让iOS UIWebView正确显示移动网站?
刚刚尝试了Dipen Chudasama关于禁用“用户大小类”选项的建议,这是所有这些建议的第一次,结果确实发生了一些变化(从左对齐到中心对齐),但仍然没有我在找什么。这是截图:
修改:
感谢您热心人士给出的所有建议。正如我所理解的那样,在UIWebView中加载像amazon.com这样的网站应该是一项相当容易的任务,但是,我没有成功完成任何建议。
如果有人可以与我分享(通过Github或类似的)只是一个示例xcode项目(从头开始使用最新版本的xcode工具链),除了可以正确加载amazon.com的UIWebView之外,这将是很棒的。这样我可以逐行进行差异操作,并且可以在我自己的项目中找到我做错的事情。
答案 0 :(得分:2)
UIWebView有一个名为" scalesPageToFit"的属性:
self.myWebView.scalesPageToFit = YES;
self.myWebView.contentMode = UIViewContentModeScaleAspectFit;
应该这样做。
答案 1 :(得分:0)
您可以使用此UIWebview
属性webView.scalesPageToFit = YES;
否则,您可以在UIWebView
中运行js命令来执行缩放:
NSString *js = [NSString stringWithFormat:@"document.body.style.zoom = 0.8;"];
[webView stringByEvaluatingJavaScriptFromString:js];
答案 2 :(得分:0)
我明白了..你只是在故事板中设置iPhone大小视图而不是任何大小,意味着禁用“使用大小类”复选框并查看,这将起作用.. :)
- (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.
答案 3 :(得分:0)
我和@goodbyeera有同样的问题,然后意识到我没有在AutoLayout
上设置UIWebView
约束。因此,当加载WebView
时,它对于iPhone屏幕来说太大了。通过添加约束以使UIWebView
适合屏幕,将其全部修复。希望这对你有帮助。