Cordova - UIColor et NSURL
ObjectiveSwift
Membre
Bonjour, bonjour,
Actuellement sur un projet avec Cordova, j'aurais deux questions. Déjà , sur cette méthode :
- (void)webViewDidFinishLoad:(UIWebView*)theWebView
{
// Black base color for background matches the native apps
theWebView.backgroundColor = [UIColor grayColor];
return [super webViewDidFinishLoad:theWebView];
}
Ceci fonctionne comme attendu mais si je fais ça :
- (void)webViewDidFinishLoad:(UIWebView*)theWebView
{
// Black base color for background matches the native apps
UIColor *myColor = [[UIColor alloc] initWithRed:180 green:180 blue:180 alpha:1];
theWebView.backgroundColor = myColor;
return [super webViewDidFinishLoad:theWebView];
}
Le background reste désespérément blanc, quelques soient les valeurs indiqués. En fait c'est noir ou blanc.
Ma deuxième question concerne ce code :
NSURL *rootURL;
rootURL = [[NSBundle mainBundle] URLForResource:@www/htmlInfos withExtension:@html];
[self.webView loadRequest:[NSURLRequest requestWithURL:htmlLegal]];
Qui génère ces deux erreurs :
2014-07-29 10:43:09.560 app[1112:60b] Resetting plugins due to page load.
2014-07-29 10:43:09.717 app[1112:60b] Finished load of: http://app.beebox/
Je ne suis pas sûr que le URLForResource soit correcte.
Merci pour votre aide.
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Les constante passer dans les couleurs doivent avoir des valeur entre 0 et 1 non? du coup je penses que par défaut si c'est supérieur à 1 il prend 1
Donc un :
Devrait marcher non?
J'avais pas vu la deuxième je penses que ton path est mauvais effectivement.
Essais un truc dans ce genre pour voir
Pour ça je te garantie rien mais sans voir la structure du projet c'est pas forcement simple.
Sinon tu reprends ton code sans le "www/" ça peut marcher suivant comment tu as importé ton fichier html.
@ObjectiveSwift :
Comme c'est deux sujets différents le mieux c'est de lancer deus discussions au lieux d'une.
Formattage du code avec les bonnes balises pour la lisibilité du code.
et Bienvenu !
Merci Nasatya, ok pour UIColor, j'ai complètement oublié que la valeur max était 1
Samir, modifications apportés mais ça n'a pas fonctionné du premier coup.
Alors concernant mes pages HTML ça ne fonctionne toujours pas mais je n'ai plus de message d'erreur. J'ai du récupérer à nouveau mon projet et repartir à zéro donc difficile de savoir pourquoi je n'est plus ces messages.
Par contre a la racine de mon projet j'ai un dossier www et mes fichiers HTML sont à l'intérieur. Bon je vais regarder un peu plus en profondeur la doc de Cordova.
Merci pour vos réponses.
Essaie avec :
En passant la bonne valeur à baseURL.
Alors justement, ça marche comment baseURL ? Parce que d'après mes premiers essais, rien... J'ai regardé la doc mais je ne vois pas trop quoi mettre. Dans un exemple que j'ai téléchargé (sur le site Apple), j'ai ceci :
Je viens de faire un nouvel essai sur un projet tout neuf et avec mon fichier HTML a la racine de ce projet. J'ai donc ce code :
J'ai essayé avec et sans le slash. Le htmlPath ne fonctionne pas non plus.
Merci pour vos retours.
En même temps dans ton code tu t'en sers pas
Après je sais pas si le NSURLRequest est capable de prendre des urls locale.
edit : Après test ça fonctionne j'ai crée un POC vite fait un fichier data.html avec un <h1>hello world</h1>
Je l'affiche avec ce code là sans souci.
Ma WebView est géré par mon Storyboard mais ça ne change rien du tout à l'exemple normalement.
haha, merci Nasatya. Oui un URLRequest peut renvoyer l'URL :
ici :
Bon, une dernière question par apport à la UIWebView. Est-il possible, avant de télécharger un fichier de savoir si elle est capable de l'ouvrir ? Il y a bien un dataDetectorTypes mais il ne réponds pas au besoin, ou alors j'ai rien compris.
A défaut, est-il possible de savoir si le système est capable d'ouvrir tel ou tel fichier ? Via des app tiers...
Hello,
La webView ne peut pas détecter si elle peut ouvrir tel ou tel document, mais tu as une liste de documents que tu peux ouvrir dans une webView, donc c'est à toi de tester si le document que tu veux ouvrir est dans cette liste avant de demander à la webView de l'ouvrir.
La webView va notifier son delegate si le chargement d'un document n'a pas abouti. ( pas de connexion internet pour un document distant,....).
https://developer.apple.com/library/ios/documentation/uikit/reference/UIWebViewDelegate_Protocol/Reference/Reference.html#//apple_ref/occ/intfm/UIWebViewDelegate/webView:didFailLoadWithError:
Voici la liste des documents que une webView peut ouvrir :
https://developer.apple.com/library/ios/qa/qa1630/_index.html
Super, merci Samir.
Une dernière question avant de clore le sujet. Je fais appel à UIDocumentInteractionController pour partager des documents avec d'autres Applications installés sur le système. Est-il possible de le "customiser" et/ou de sélectionner les options que l'on veut ou pas ?
J'ai vu les propriétés UTI et annotation mais annotation me renvois systématiquement null. UTI me renvois public.png par exemple.