4

我知道 HTML、javascript、CSS……但我想使用 HTML5 制作原生/混合 iPhone 应用程序,但不使用 PhoneGap 或 Nimblekit 之类的东西。我以前从未编写过真正的(不是网络应用程序)iPhone 应用程序,所以我对 Xcode 真的一无所知。我已经用我找到的教程制作了 UIWebView,但它显示了一个网站(apple.com)。我怎样才能使它显示一个本地文件(index.html)?

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

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

3 回答 3

14

您有 2 个选项:

像这样直接插入 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]];
于 2013-03-27T08:44:06.183 回答
2

对于斯威夫特 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)
}
于 2016-11-27T15:30:08.887 回答
0

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

NSURLRequest *requestObj = [NSURLRequest requestWithURL:[[NSBundle mainBundle] URLForResource:@"index" withExtension:@"html"]];
[myweb loadRequest:requestObj];
于 2013-03-27T08:37:25.917 回答