2010-01-30 5 views
1

J'ai un UIWebView qui charge un fichier HTML local à partir du dossier des ressources. Maintenant, ce fichier HTML contient du Javascript.Comment passer une variable XCode au fichier HTML dans le dossier des ressources?

Ma question est, est-il un moyen de passer une variable XCode au fichier HTML qui est chargé dans l'UIWebView que je peux passer à la fonction Javascript dans le code HTML.

Merci beaucoup pour toute aide ou suggestion.

Répondre

1

Vous pouvez construire une chaîne Javascript puis passer au -stringByEvaluatingJavaScriptFromString:, par ex.

NSInteger u = get_integer_from_user(); 
NSString* script = [NSString stringWithFormat:@"call_your_function(%d);", u]; 
[webView stringByEvaluatingJavaScriptFromString:script]; 
+0

KennyTM, je l'ai compris. Dans mon fichier html, j'ai un javascript dans lequel il y a la fonction initialise(), que j'appelle onload. c'est-à-dire . Maintenant, puis-je simplement l'écrire comme initialise (nombre s) et procceed? – neha

+0

@neha: Oui. Mais dans ce cas, vous devez supprimer 'initialize()' dans votre 'onload' pour éviter une double initialisation. – kennytm

+0

Mais, si je supprime initialise() dans onload(), le script ne trouve rien à exécuter lors du chargement et cela ne fonctionne pas .. – neha

0

Vous pouvez faire quelque chose comme

[_webView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"Handler.method(%@);", variable]]; 

Handler.method est une fonction Javascript. Assurez-vous que la page est chargée jusqu'à ce que vous évaluiez ce Javascript, sinon cela ne fonctionnera pas. J'utilise cette méthode moi-même et cela fonctionne, bien que je devais encoder base64 les données pour le faire fonctionner. Cela dépend de la valeur que vous y stockez.

+0

Merci pour votre aide, JoostK. Il a aidé .. – neha

+0

JoostK, ici vous fournissez le webVoir le nom de la fonction alors où vous spécifiez le nom du script et le chemin? – neha

+0

Dans mon cas, 'Handler.method' est juste une fonction Javascript normale. Le 'UIWebView' essaie de gérer cet appel JS et recherche cette méthode, dans n'importe quel élément' script' ou Javascript importé. Vous pouvez donc simplement importer/définir votre JS dans le fichier HTML que vous chargez dans 'webView', vous pouvez alors appeler n'importe quelle fonction Javascript de Cocoa. – Joost

Questions connexes