我正在使用Swift
编写我的第一个iOS应用程序(仅适用于iPad),其中app会根据应用程序上的资源和用户选择的值加载html。我正在使用以下函数加载UIWebView
上的数据。所有资源都存在于项目中。
let url = NSBundle.mainBundle().URLForResource(updatedResource, withExtension: "html")
let requestObj = NSURLRequest(URL: url!);
htmlWebView.loadRequest(requestObj);
url
是需要加载的资源的名称。
print("This is the request \(htmlWebView.request)")
给了我价值
This is the request Optional(<NSMutableURLRequest: 0x7fc180589a00> { URL: file:///Users/ios/Library/Developer/CoreSimulator/Devices/CB5ACC92-856E-4CBE-B4D4-03B0C1774765/data/Containers/Bundle/Application/C588D7E2-15F0-406A-8B09-227E2284459E/DemoHTML5.app/file3.html })
之前,我曾在iPad Mini模拟器上部署该应用程序,但在iPad 2 / iPad Air模拟器上部署时显示白屏
P.S:我正在使用XCode 6.1并在iOS 8.1上运行应用程序(正在进行OS 10.11升级)。所有资源都存在于应用程序中
答案 0 :(得分:0)
这段代码对我来说很好。我的猜测是你在iPad上的故事板有问题。这是一个演示解决方案的示例项目:
https://www.dropbox.com/s/0xekspq2otqoq3l/SimpleWebViewLoader.zip?dl=0
其中的代码非常简单:
class ViewController: UIViewController {
@IBOutlet weak var webView: UIWebView!
override func viewDidLoad() {
super.viewDidLoad()
let url = NSBundle.mainBundle().URLForResource("test", withExtension: "html")
let requestObj = NSURLRequest(URL: url!)
webView.loadRequest(requestObj)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
我包含了拉链,因此您可以运行它,看看它是否适用于您。注意我使用的是Xcode 7.3。通常建议您查看Xcode版本的最新信息。