2009-12-18 5 views
2

Est-il possible d'écrire une webapp, puis l'intégrer dans une application native afin qu'elle puisse être lancée sans données et vendue via l'App Store? Le pré facilite la référence des fichiers dans la structure de fichiers locale. Il est donc très facile de créer une application web (HTML, CSS et Javascript) et de l'intégrer dans une application native.iPhone: application native avec Webapp stocké localement?

Est-il possible de prendre le même code HTML, CSS et Javascript (pas de code spécifique à Mojo/Webos) et de l'intégrer de la même manière dans une application iPhone native? Cela donnerait l'impression à l'utilisateur que l'icône du menu principal lance une application Web, mais que l'application est accessible sans aucune donnée et peut être vendue via le magasin d'applications.

Merci, ~ J

Répondre

0

Je ne vois pas pourquoi pas, juste donner UIWebView un baseUrl de votre paquet local stocké.

0

Regardez PhoneGap (http://phonegap.com/)

Je n'ai pas utilisé, mais il peut être une bonne solution pour ce que vous essayez de faire.

0

Oui, c'est parfaitement faisable. Vous avez juste besoin de construire le chemin absolu vers vos fichiers HTML dans votre paquet d'application, en utilisant "file: ///" comme protocole, et pointez l'URL d'un UIWebView. Vous pouvez faire un test rapide et sale en utilisant le simulateur iPhone OS et écrire quelque chose comme "file: ///foo/bar.html" sur Safari.app, à condition que le HTML existe, il se chargera très bien.

0

Le problème est l'emballage. D'après ce que je peux dire (et je pourrais très bien me tromper totalement), Apple vide tous vos fichiers dans un seul dossier de ressources, indépendamment de la structure de votre projet. Donc, si vous créez une page Web qui fait référence à images/logo.png et javascript/script.js, ces fichiers seront soudainement placés dans/à la place de leurs dossiers respectifs. Compte tenu de cela, il pourrait être possible de créer une application web avec une structure complètement plate dès le départ.

+1

Ce n'est pas correct. Vous pouvez conserver votre structure de répertoire complète en incluant le répertoire lui-même en tant que ressource dans Xcode. Je le fais pour fournir une aide basée sur le HTML en application, avec des sous-répertoires pour les chapitres et sous-répertoires dans ceux pour les images. –

0

Il n'y a aucune raison technique pour laquelle je sais pourquoi cela devrait poser problème. Cependant, il est toujours possible qu'Apple rejette l'application pour faire quelque chose comme ça - ils n'ont certainement pas hésité à rejeter les applications pour ne pas avoir «bien agi» avant, et les applications web ont certaines particularités qui les rendent pas ressentez comme des applications natives.

Un tel rejet pourrait probablement être résolu par une nouvelle soumission, car il n'y a certainement pas de standard pour ce genre de chose, mais c'est certainement quelque chose dont il faut être conscient.

+0

Il y a beaucoup d'applications qui font ceci sur le magasin, cependant. –

+0

Il est vrai que de nombreuses applications utilisent des WebViews intégrés. Cependant, * Je * ne sais pas de tout ce qui consiste ** uniquement ** d'un WebView. À tout le moins, la plupart de ces applications utilisent un contrôle natif pour la barre supérieure ou quelque chose, avec un WebView massif pour le rendu du contenu. Mais comme je l'ai dit, il est peu probable qu'il soit rejeté, mais pas impossible. –

3

Dans mon application, j'ai un manuel HTML complet que j'utilise pour afficher un UIWebView. Le code HTML, CSS et les images sont tous stockés localement dans un répertoire Aide dans mon lot d'applications. Je charge simplement la première page en utilisant le code comme suit:

NSString *path = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"Help"];     
NSURL *helpURL = [NSURL fileURLWithPath:[path stringByAppendingPathComponent:@"helpintroduction.html"]]; 

NSURLRequest *URLReq = [NSURLRequest requestWithURL:helpURL]; 
[webHelpView loadRequest:URLReq]; 

et tout charge et affiche comme si elle était sur un serveur distant. Pour préserver la structure de répertoires complète de vos fichiers HTML, etc., ajoutez simplement ces fichiers à votre projet Xcode, en faisant glisser les répertoires là où vous le pouvez et ajoutez une nouvelle phase de compilation Copy Files. Faites la destination Resources et le chemin que vous voulez utiliser pour la base de vos fichiers Web (Aide dans l'exemple ci-dessus).Enfin, faites glisser toutes les ressources HTML, etc. que vous avez ajoutées à votre projet dans la phase de construction Copy Files afin qu'elles soient intégrées à votre application.

Je ne vois pas pourquoi cela ne fonctionnerait pas avec des applications web plus complexes, et je n'ai vu aucune action d'Apple contre les personnes qui font cela dans leurs propres applications.

+0

Donc, cela fonctionnerait pour étendre la méthode utilisée par: http://bit.ly/4YYzW Pour que je puisse avoir des références à des images et des scripts dans une structure de répertoire dans ma webapp? - Merci pour cette réponse géniale, d'ailleurs. Je suis juste nouveau à iphoning et essayant de m'assurer que je viens à ce problème du bon angle. ~ J – Jordan

+0

Oui, ça devrait. Leur affirmation que vous ne pouvez pas avoir de sous-répertoires est fausse. Dans l'exemple ci-dessus, j'ai plusieurs sous-répertoires dans le répertoire Help, et tout se charge correctement. Je n'ai jamais travaillé avec PhoneGap auparavant, mais si tout ce qu'il produit peut être lu sur un serveur web, il n'y a aucune raison qu'il ne puisse pas être chargé localement à partir des ressources de votre application. –

0

Si vous n'êtes pas un codeur et vous êtes intéressé par iOS uniquement, vous pouvez suivre ces étapes:

  • Télécharger xCode
  • Télécharger application simple affichage Web de https://github.com/nomtek/iOSWebViewApp
  • Ouvrir application simple vue web au sein de xcode
  • Ajouter votre HTMLs à la structure de fichier de projet
  • Exécutez votre application et le tour est joué :)

Cette approche est bonne si vous n'avez pas besoin d'accéder à des fonctions spécifiques au téléphone, juste une vue Web standard. Le temps de chargement sera court car cette approche ne charge aucune bibliothèque supplémentaire.

Questions connexes