J'essaye de charger un fichier html dans mon UIWebView mais cela ne fonctionnera pas. Voici l'étape: j'ai un dossier appelé html_files dans mon projet. Ensuite, j'ai créé une vue Web dans le générateur d'interface et lui ai attribué une prise dans le viewController. Voici le code que j'utilise pour ajouter le fichier html:
-(void)viewDidLoad
{
NSString *htmlFile = [[NSBundle mainBundle] pathForResource:@"sample" ofType:@"html" inDirectory:@"html_files"];
NSData *htmlData = [NSData dataWithContentsOfFile:htmlFile];
[webView loadData:htmlData MIMEType:@"text/html" textEncodingName:@"UTF-8" baseURL:[NSURL URLWithString:@""]];
[super viewDidLoad];
}
Cela ne fonctionnera pas et l'UIWebView est vide. J'apprécierais de l'aide.
ios
objective-c
iphone
cocoa-touch
uiwebview
madcoderz
la source
la source
EDIT 2016-05-27 -
loadRequest
expose "une vulnérabilité universelle de Cross-Site Scripting". Assurez-vous de posséder chaque élément que vous chargez. Si vous chargez un mauvais script, il peut charger tout ce qu'il veut.Si vous avez besoin de liens relatifs pour fonctionner localement, utilisez ceci:
Le bundle recherchera tous les sous-répertoires du projet à trouver
my.html
. (la structure du répertoire est aplatie au moment de la construction)Si
my.html
a la balise<img src="some.png">
, la webView se chargera àsome.png
partir de votre projet.la source
par cela, vous pouvez charger le fichier html qui se trouve dans vos actifs de projet (bundle) sur webView.
peut-être que cela vous est utile.
la source
Je suppose que vous devez
allocate
et lancez votrewebview
premier:la source
Un extrait de code simple copier-coller:
Remarque:
Assurez-vous que l' appartenance cible du fichier html est cochée, sinon l'exception suivante sera levée: -
Arrêt de l'application en raison d'une exception non interceptée
'NSInvalidArgumentException', reason: '*** -[NSURL initFileURLWithPath:isDirectory:]: nil string parameter'
la source
Pour Swift 3 et Swift 4:
la source
la source
Peut-être que votre fichier HTML ne prend pas en charge le codage UTF-8, car le même code fonctionne pour moi.
Ou vous pouvez également ces lignes de code:
la source
Voici comment fonctionne le fichier HTML avec Jquery.
Vous pouvez utiliser soit les requêtes pour appeler le fichier HTML dans votre UIWebview
la source
Assurez-vous que "html_files" est un répertoire dans le bundle principal de votre application, et pas seulement un groupe dans Xcode.
la source
Une nouvelle façon de faire cela en utilisant swift. UIWebView n'existe plus et WKWebView est la nouvelle classe pour charger les pages Web, ce qui garantit les fonctionnalités de Safari dans la vue Web.
la source
la source
Il est peut-être en retard, mais si le fichier
pathForResource
est,nil
vous devez l'ajouter dans le fichierBuild Phases > Copy Bundle Resources
.la source
Voici Swift 3:
la source
la source
Dans Swift 2.0, la réponse de @ user478681 pourrait ressembler à ceci:
la source
Mettez tous les fichiers (html et ressources) dans un répertoire (pour mon "manuel"). Ensuite, faites glisser et déposez le répertoire vers XCode, sur "Fichiers de support". Vous devez cocher les options "Copier les éléments si nécessaire" et "Créer des références de dossier". Ensuite, écrivez un code simple:
Attention
@"manual/index"
, manuel est le nom de mon annuaire !! C'est tout !!!! Désolé pour mon mauvais anglais...==================================================== ======================
Hola desde Costa Rica. Ponga los archivos (html y demás recursos) en un directorio (en mi caso lo llamé manual), luego, arrastre y suelte en XCode, sobre "Supporting Files". Usted debe seleccionar las opciones "Copier les éléments si nécessaire" et "Créer des références de dossier".
Presta atención a
@"manual/index"
, manual es el nombre de mi directorio !!la source
Lorsque votre projet s'agrandit, vous aurez peut-être besoin d'une structure pour que votre page HTML puisse référencer des fichiers situés dans des sous-dossiers.
En supposant que vous faites glisser votre
html_files
dossier vers Xcode et que vous sélectionnez l' option Créer des références de dossier , le code Swift suivant garantit que leWKWebView
prend également en charge la structure de dossier résultante:Cela signifie que si votre
sample.html
fichier contient une<img src="subfolder/myimage.jpg">
balise, le fichier imagemyimage.jpg
danssubfolder
sera également chargé et affiché.Crédits: https://stackoverflow.com/a/8436281/4769344
la source