De ce que j'ai vu, si vous construisez une application OSX Desktop HTML5 et que vous souhaitez que LocalStorage persiste dans votre wrapper WebView, vous devez faire quelque chose comme ceci:
#import <WebKit/WebKit.h> #import <WebKit/WebPreferences.h>
3 Réponses :
Il y a de bonnes nouvelles et il y a de mauvaises nouvelles; Je vais faire l'hypothèse que vous voulez d'abord la mauvaise nouvelle (ce serait plus facile si j'ai répondu à votre question avec les mauvaises nouvelles d'abord). P>
La seule réponse à laquelle cela se passe est que Xcode 4.3 n'offre plus ces méthodes. Cette question que vous avez liée à " Comment faire Je active le stockage local dans mon application WebKit? "a été actif sur la dernière fois il y a plus d'un an (avec la réponse acceptée éditée au début de 2011). Il y a eu au moins deux mises à jour de Xcode depuis ensuite (probablement plus et je ne me souviens tout simplement pas de leur part), et cela me semble faisable que Apple voudrait garder leurs méthodes privées privées, il est donc prudent de supposer qu'ils les ont supprimés ainsi que le support de Les raisons pour lesquelles je ne pense pas qu'il y ait une autre réponse à votre problème sont les suivantes: p>
Désolé d'être un debbie-Downer à ce sujet, mais je ne pense tout simplement pas que votre code fonctionnerait plus sans une crîne de solde profonde et de grandes solutions de contournement. Si vous voulez que cela fonctionne facilement, vous devrez probablement revenir au début de 2011 et rendre votre application à la place. P>
Il y a probablement une solution qui n'implique pas des méthodes privées et non prises en charge que je ne suis tout simplement pas au courant de mon manque d'expérience en utilisant setlocalstorageenabled: code>. p>
setlocalstorageenabled: code> mais également pour prendre en charge des méthodes privées telles que
_setlocalstoragedatabasepath: code>. Pourquoi ils ont soutenu les méthodes privées pour commencer, je ne sais pas, mais ils ont définitivement craqué sur leur soutien, car je n'ai pas vu l'occasion de mettre en œuvre une méthode privée dans un certain temps. Li>
webkit code> sans faire de soulever des objets lourds en ce qui concerne non seulement la recherche de la partie privée, mais également l'obtenir dans votre code. Même si vous pouvez obtenir ces méthodes supportées dans votre code après tout ce levage lourd, il serait très improbable que Apple soit très heureux avec elle et qu'ils refusaient probablement votre application de l'App Store. Li>
ol>
La bonne nouvelle h1>
webkit code>. Au lieu de chercher une réponse pour la raison pour laquelle votre code ne fonctionne pas, je commencerais à chercher des alternatives pour ce que votre code est censé faire. P>
Une chose à vérifier: Si vous écrivez le code HTML5 (JS + HTML5), mettez-le dans votre site Web fonctionnant? Ensuite, si vous avez besoin de connecter votre JS à votre objectif C pour mettre / obtenir des données.
Non, ça ne marcherait pas; Il s'agit d'appeler une méthode qui n'est plus prise en charge par le SDK iOS, pas le contenu d'une vue Web.
Je pense que vous avez raison, ce n'est plus pris en charge. Je serais peut-être à utiliser une approche similaire en matière de téléphones-téléphones - copier le localStorage.db vers un emplacement sûr lorsque le programme se déroule et restaurer lorsque le programme recommence à nouveau.
OK, j'ai une solution. J'ai regardé le code source à MACGAP et a remarqué comment ils traitaient de ce problème.
Il tourne Sortir le message d'erreur que je voulais avoir un peu de sens - je devais déclarer une interface pour les valeurs Web. p> Comme je l'ai dit, je suis nouveau à l'objectif-c . Je ne comprends pas vraiment pourquoi l'interface est nécessaire pour appeler ces deux méthodes (c'est-à-dire quand je peux appeler les autres méthodes sans l'interface). P> P>
J'ai trouvé une solution au problème de la persistance. Voir mon message à p>
Le message d'erreur indique qu'il n'y a pas de déclaration de _SetLocalStorageDataBasepath: - pas que cela ne fonctionnera pas si vous l'appelez. Cela peut fonctionner si vous l'appelez, alors lorsque Apple publie 10.8, ou 10.7.5, cela peut arrêter de travailler. Si probablement, vous ne voulez pas les utiliser en aucun cas.
@Tomandersen non, cela ne compilera pas. Et remarquez que la méthode «SetLocalStorageenabled» ne fonctionne pas non plus - et ce n'est même pas une méthode privée.
Vous pouvez appeler n'importe quoi en cacao: par exemple, prenez une astring Nstring, puis [Astring thisisacallThatWillnotwork]; devrait compiler et causer un crash au moment de l'exécution. Peut-être que vous utilisez différents paramètres du compilateur.