在iOS UIWebView中为iPhone和iPad加载不同的HTML

时间:2014-01-09 22:06:20

标签: ios iphone objective-c ipad uiwebview

我可以让iPhone和iPad同时加载相同的HTML文件,但是我想根据程序加载的设备加载更优化的页面。

ViewController.h:

#import <UIKit/UIKit.h>

@interface ViewController : UIViewController
@property (strong, nonatomic) IBOutlet UIWebView *webView;

@end

ViewController.m:

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad
{
    NSURL *url = [[NSBundle mainBundle] URLForResource:@"index" withExtension:@"html"];
    NSString *html = [NSString stringWithContentsOfURL:url encoding:NSUTF8StringEncoding error:nil];

    NSString *path = [[NSBundle mainBundle] bundlePath];
    NSURL *baseURL = [NSURL fileURLWithPath:path];

    [_webView loadHTMLString:html baseURL:baseURL];

    // disable scrolling
    _webView.scrollView.scrollEnabled = NO;
    _webView.scrollView.bounces = NO;
}



- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@end

我试图创建一个新的插座,但我似乎遇到了重叠的代码。

如何使用通用版本为iPad和iPhone加载不同的HTML文件?

1 个答案:

答案 0 :(得分:1)

只需使用一个网络视图。您只需要两个不同的HTML文件。

然后您的代码可以是:

NSURL *url;
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) {
    url = [[NSBundle mainBundle] URLForResource:@"index-iphone" withExtension:@"html"];
} else {
    url = [[NSBundle mainBundle] URLForResource:@"index-ipad" withExtension:@"html"];
}

这假设您的应用包中同时包含index-iphone.htmlindex-ipad.html文件。