定义本地HTML文件的位置

时间:2016-03-27 15:52:47

标签: ios swift webview

愚蠢的问题很尴尬,但无法弄明白。

添加本地html很简单,但由于我将有几个不同的页面(场景),我需要每个html页面都有自己的目录。

我正在努力如何定义要使用的html文件的位置(目录)。

以下代码使用:

    let filePath = ("html_shark" as  NSString).stringByAppendingPathComponent("sharks.html")
    let url:NSURL=NSURL(fileURLWithPath:filePath)
    let request:NSURLRequest=NSURLRequest(URL:url)
    myWebView!.loadRequest(request)

将使用的两个文件夹是

html_shark @ sharks.html和 HTML_turtlesCon @ turtles.html

2 个答案:

答案 0 :(得分:2)

你确定你有真正的文件夹,而不仅仅是组。如果是这样的话

let path = NSBundle.mainBundle().pathForResource("htmlpage2", ofType: "htm", inDirectory:"sub")
// use path to create nsurl for nsurlrequest

答案 1 :(得分:0)

[NSURL fileURLWithPath:@"foo/bar.html"]将为file:///foo/bar.html,这意味着文件网址/foo/bar.html位于设备文件系统上,/不是应用包路径的根目录。
您可以使用NSBundle类获取应用的根路径。例如[NSBundle mainBundle].bundlePath

对于您的问题,如果您的html_shark HTML_turtlesCon目录在Xcode中显示黄色图标颜色,请使用以下代码:

NSURL *url = [[NSBundle mainBundle].resourceURL URLByAppendingPathComponent:@"sharks.html"];

如果目录中包含html文件在Xcode中显示蓝色图标颜色,请使用:

NSURL *url = [[NSBundle mainBundle].resourceURL URLByAppendingPathComponent:@"html_shark/sharks.html"];

Swift代码:

let url:NSURL = (NSBundle.mainBundle().resourceURL?.URLByAppendingPathComponent("sharks.html"))!
webView.loadRequest(NSURLRequest(URL: url))