web-dev-qa-db-fra.com

Comment puis-je charger un fichier HTML local dans UIWebView?

Comment pouvons-nous charger notre propre fichier HTML dans le UIWebView?

24
RAMAN RANA

Le code suivant chargera un fichier HTML nommé index.html dans votre dossier de projet:

[WebView loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"index" ofType:@"html"]isDirectory:NO]]];
63
Cody Gray

Cody Grey a raison, mais il y a aussi ceci:

// Load the html as a string from the file system
NSString *path = [[NSBundle mainBundle] pathForResource:@"index" ofType:@"html"];
NSString *html = [[NSString alloc] initWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];

// Tell the web view to load it
[WebView loadHTMLString:html baseURL:[[NSBundle mainBundle] bundleURL]];

Ceci est utile si vous devez modifier le code HTML avant de le charger.

28
deanWombourne

Rapide

    guard let path = NSBundle.mainBundle().pathForResource("index", ofType: "html") else {
        return
    }

    let url = NSURL(fileURLWithPath: path)
    self.webview.loadRequest(NSURLRequest(URL:url))
6
Oded Regev

En utilisant le code suivant, vous pouvez charger un fichier HTML dans une WebView. Le Web est web view obj and inde

Web.delegate = self;

[Web loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"index" ofType:@"html"]isDirectory:NO]]];
2
Teja Swaroop

La documentation d'Apple suggère d'utiliser loadHTMLString:baseURL::

Utilisez la méthode loadHTMLString: baseURL: pour commencer à charger les fichiers HTML locaux ou la méthode loadRequest: pour commencer à charger le contenu Web. Utilisez la méthode stopLoading pour arrêter le chargement et la propriété loading pour savoir si une vue Web est en cours de chargement.

La documentation loadHTMLString:baseURL: offre un raisonnement supplémentaire:

Pour vous aider à ne pas être vulnérable aux attaques de sécurité, veillez à utiliser cette méthode pour charger des fichiers HTML locaux. n’utilisez pas loadRequest :.

Celui-ci pourrait aider: https://stackoverflow.com/a/29741277

1
siege_Perilous
NSString *htmlFile = [[NSBundle mainBundle] pathForResource:@"privacy-Policy" ofType:@"html" inDirectory:nil];
NSData *htmlData = [NSData dataWithContentsOfFile:htmlFile];
[webView loadData:htmlData MIMEType:@"text/html" textEncodingName:@"UTF-8" baseURL:[NSURL URLWithString:@""]];
0
Nupur Gupta

Swift Version 2.1

// load html to 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 {

}
0
Sruit A.Suk