Xcode UIWebView本地HTML

时间:2013-03-27 08:30:51

标签: iphone html xcode uiwebview local

我知道HTML,javascript,CSS ...但我想使用HTML5制作原生/混合iPhone应用,但不使用像PhoneGap或Nimblekit这样的东西。 我之前从未写过真正的(不是网络应用程序)iPhone应用程序,因此我对Xcode一无所知。 我已经用我发现的教程创建了一个UIWebView,但它显示了一个网站(apple.com)。 如何将此显示设置为本地文件(index.html)?

我在ViewController.m中的代码(void)viewDidLoad:

    [super viewDidLoad];
    NSString *fullURL = @"html/index.html";
    NSURL *url = [NSURL URLWithString:fullURL];
    NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
    [_viewWeb loadRequest:requestObj];

3 个答案:

答案 0 :(得分:14)

您有两个选择:

直接插入HTML:

UIWebView *wv = [[UIWebView alloc] init]; 
[wv loadHTMLString:@"<html><body>YOUR-TEXT-HERE</body></html>" baseURL:nil];

加载项目中存在的html文件:

UIWebView *wv = [[UIWebView alloc] init];
NSURL *htmlFile = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"test" ofType:@"html"] isDirectory:NO];
[wv loadRequest:[NSURLRequest requestWithURL:htmlFile]]; 

如果您希望您的示例有效,请将您发送的代码替换为:

[super viewDidLoad];
NSURL *htmlFile = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"index" ofType:@"html"]];
[_viewWeb loadRequest:[NSURLRequest requestWithURL:htmlFile]];

答案 1 :(得分:1)

对于Swift 3:

@IBOutlet var webView: UIWebView!
override func viewDidLoad() {
super.viewDidLoad()
let URL = Bundle.main.url(forResource: "file name", withExtension: "html")
let request = NSURLRequest(url: URL! as URL)
webView.loadRequest(request as URLRequest)
}

答案 2 :(得分:0)

您可以从项目包中加载本地html文件,如下所示

NSURLRequest *requestObj = [NSURLRequest requestWithURL:[[NSBundle mainBundle] URLForResource:@"index" withExtension:@"html"]];
[myweb loadRequest:requestObj];