Deze maakt me gek vanochtend vroeg. Ik wil wat lokale html in een webweergave laden:
class PrivacyController: UIViewController {
@IBOutlet weak var webView:UIWebView!
override func viewDidLoad() {
let url = NSURL(fileURLWithPath: "privacy.html")
let request = NSURLRequest(URL: url!)
webView.loadRequest(request)
}
}
Het html-bestand bevindt zich in de hoofdmap van mijn project, maar bevindt zich in een groep. De webview is leeg voor mij. Enig idee wat er mis is? Ik gebruik xcode 6.1 en voer dit voorbeeld uit op mijn iphone 6.
Antwoord 1, autoriteit 100%
Als u URL’s voor toepassingsbronnen wilt ophalen, moet u de methode URLForResource
van de klasse NSBundle
gebruiken.
Swift 2
let url = NSBundle.mainBundle().URLForResource("privacy", withExtension:"html")
Swift 3
let url = Bundle.main.url(forResource: "privacy", withExtension: "html")
Antwoord 2, autoriteit 33%
Swift 3: typ veilig
@IBOutlet weak var webView: UIWebView!
override func viewDidLoad() {
super.viewDidLoad()
// Adding webView content
do {
guard let filePath = Bundle.main.path(forResource: "myFile", ofType: "html")
else {
// File Error
print ("File reading error")
return
}
let contents = try String(contentsOfFile: filePath, encoding: .utf8)
let baseUrl = URL(fileURLWithPath: filePath)
webView.loadHTMLString(contents as String, baseURL: baseUrl)
}
catch {
print ("File HTML error")
}
}
Houd in gedachten: NS = Not Swift :]
Antwoord 3, autoriteit 21%
// Point UIWebView
@IBOutlet weak var webView: UIWebView!
override func viewDidLoad() {
super.viewDidLoad()
//load a file
var testHTML = NSBundle.mainBundle().pathForResource("privacy", ofType: "html")
var contents = NSString(contentsOfFile: testHTML!, encoding: NSUTF8StringEncoding, error: nil)
var baseUrl = NSURL(fileURLWithPath: testHTML!) //for load css file
webView.loadHTMLString(contents, baseURL: baseUrl)
}
Antwoord 4, autoriteit 14%
Swift 3met 3regels 🙂
if let url = Bundle.main.url(forResource: "privacy", withExtension: "html") {
webview.loadRequest(URLRequest(url: url))
}
Antwoord 5, autoriteit 11%
Snelle versie 2.1
dit geval bevat ook codering
// load HTML String with Encoding
let path = NSBundle.mainBundle().pathForResource("policy", ofType: "html")
do {
let fileHtml = try NSString(contentsOfFile: path!, encoding: NSUTF8StringEncoding)
webView.loadHTMLString(fileHtml as String, baseURL: nil)
}
catch {
}
Antwoord 6, autoriteit 9%
Voeg het lokale HTML-bestand toe aan uw project en noem dat bestand home.html, en maak vervolgens het NSURLRequest met behulp van het NSURL-object. Nadat het verzoek is doorgegeven aan de webweergave, wordt de gevraagde URL in de webweergave geladen en als u geen storyboard gebruikt, voegt u de uiwebview toe aan de weergavecontrollerweergave zoals de onderstaande code.
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
let localfilePath = NSBundle.mainBundle().URLForResource("home", withExtension: "html");
let myRequest = NSURLRequest(URL: localfilePath!);
myWebView.loadRequest(myRequest);
self.view.addSubview(myWebView)
}
Raadpleeg voor meer informatie deze http://sourcefreeze.com/ uiwebview-voorbeeld-met-swift-in-ios/
Antwoord 7, autoriteit 6%
Dit werkt voor mij:
@IBOutlet weak var mWebView: UIWebView!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
mWebView.loadRequest(NSURLRequest(URL: NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource("fineName", ofType: "html")!)))
}
App Transport Security Settings
toegevoegd met Dictionary
typ het bestand info.plistin. Ook een subsleutel toegevoegd Allow Arbitrary Loads
voor App Transport Security Settingsmet type Boolean
en waarde YES
.
Hieris de tutorial.
BEWERKT
Voor Swift 3 (Xcode 8)
mWebView.loadRequest(URLRequest(url: URL(fileURLWithPath: Bundle.main.path(forResource: "test/index", ofType: "html")!)))
Antwoord 8, autoriteit 4%
U kunt een html-tekenreeks of een lokaal html-bestand laden in UIWebView.
HTML-tekenreeks:
func loadHtmlCode() {
let htmlCode = "<html><head><title>Wonderful web</title></head> <body><p>wonderful web. loading html code in <strong>UIWebView</strong></></body>"
webView.loadHTMLString(htmlCode, baseURL: nil)
}
HTML-bestand:
func loadHtmlFile() {
let url = NSBundle.mainBundle().URLForResource("contactus", withExtension:"html")
let request = NSURLRequest(URL: url!)
webView.loadRequest(request)
}
Details zijn hier te vinden:
http://webindream.com/load-html-uiwebview-using-swift/
Antwoord 9, autoriteit 4%
Hier is een beknopte versie voor Swift 4
1) Importeren toevoegen import WebKit
2) Voeg WebKit.framework
toe aan uw project
@IBOutlet weak var webView: WKWebView!
if let filePath = Bundle.main.url(forResource: "FILE_NAME", withExtension: "html") {
let request = NSURLRequest(url: filePath)
webView.load(request as URLRequest)
}
Antwoord 10, autoriteit 2%
Voor swift 3 Gebruik dit:
do
{
let testHTML = Bundle.main.path(forResource: "about", ofType: "html")
let contents = try NSString(contentsOfFile: testHTML!, encoding: String.Encoding.utf8.rawValue)
let baseUrl = NSURL(fileURLWithPath: testHTML!) //for load css file
mWebView.loadHTMLString(contents as String, baseURL: baseUrl as URL)
}
catch
{
}
Antwoord 11, autoriteit 2%
Swift 4.2, Xcode 10.1, WKWebView laadt HTML uit bestand. UIWebView is verouderd.
Gebruik in apps die draaien op iOS 8 en hoger de WKWebView-klasse in plaats van UIWebView.
import WebKit
@IBOutlet weak var webView: WKWebView!
override func viewDidLoad() {
super.viewDidLoad()
let localFilePath = Bundle.main.url(forResource: "document_terms_of_use", withExtension: "html")
let request = NSURLRequest(url: localFilePath!)
webView.load(request as URLRequest)
}
Antwoord 12
snel 4.2 & 5:
let webView = WKWebView(frame: CGRect(x: 0, y: 0, width: 1024, height: 768))
let url = URL(string: PERS_Path)
webView?.navigationDelegate = self
webView?.uiDelegate = self
webView!.loadFileURL(url!, allowingReadAccessTo: url!)
self.view. addSubview(webView)
vergeet niet om deze WKNavigationDelegate, WKUIDelegate
toe te voegen
Antwoord 13
Dit werkte voor mij (Xcode 8, Swift 3)
@IBOutlet zwakke var webViewer: UIWebView!
override func viewDidLoad() {
super.viewDidLoad()
let localfilePath = Bundle.main.url(forResource: "homeInfo", withExtension: "html");
let myRequest = NSURLRequest(url: localfilePath!);
webViewer.loadRequest(myRequest as URLRequest);
self.view.addSubview(webViewer)
}