Questions sur Webkit

aLittleWoodElfe

Membre junior
28 Février 2004
81
1
Bonjour,

Je voudrais réaliser une application qui affiche une page html contenant des formulaires et faire en sorte que l'application puisse accéder aux données rentrées dans le formulaire.

Est-ce que le framework Webkit permet de faire ça ?

(J'ai déjà suivi le tutoriel de PO : MyOneLineBrowser, des pistes pour avoir plus de docs sur Webkit ? à part sur le site d'Apple que je connais déjà :)
 

simon

Membre d’élite
Club MacG
18 Juin 2000
3 669
16
Singapore
www.simonganiere.ch
aLittleWoodElfe a dit:
Bonjour,

Je voudrais réaliser une application qui affiche une page html contenant des formulaires et faire en sorte que l'application puisse accéder aux données rentrées dans le formulaire.

Est-ce que le framework Webkit permet de faire ça ?

(J'ai déjà suivi le tutoriel de PO : MyOneLineBrowser, des pistes pour avoir plus de docs sur Webkit ? à part sur le site d'Apple que je connais déjà :)
Une application avec WebKit te permettra d'afficher tes pages (avec formulaires etc...ça cela depend du serveur web que tu utilises). Mais tu peux très bien faire une application double-clickable qui ne fait que de lire des pages web
 

plumber

Membre confirmé
15 Janvier 2003
473
0
tu peux ouvrir une connection sur le localhost

port 5554

et tu te fais ton propre script de recup post/get
voila ton mini service web
 

aLittleWoodElfe

Membre junior
28 Février 2004
81
1
Merci de vos réponses.

Et encore une question, est-il possible de manipuler ainsi du javascript ?

En fait je dois utiliser autant que possible du code html/javascript déjà existant (pour Windows :-( ), ce code est fourni par un serveur IIS et échange des données avec le poste client qui l'affiche.
 

simon

Membre d’élite
Club MacG
18 Juin 2000
3 669
16
Singapore
www.simonganiere.ch
aLittleWoodElfe a dit:
Merci de vos réponses.

Et encore une question, est-il possible de manipuler ainsi du javascript ?

En fait je dois utiliser autant que possible du code html/javascript déjà existant (pour Windows :-( ), ce code est fourni par un serveur IIS et échange des données avec le poste client qui l'affiche.
Pour le javascript il faut implémenter d'autres fonctions dans ton programme, par défaut le tuto qui te permet de créer un navigateur web avec une seule ligne de code ne te permet pas de gérer le javascript, il te faut regarder sur le net s'il n'y a pas une explication quelconque
 

aLittleWoodElfe

Membre junior
28 Février 2004
81
1
En fait avec le tutorial par défaut, le code JavaScript est correctement interprété.

Le truc c'est que cela se fait sans que je sache trop comment alors que pour moi l'objectif est de récupérer certaines des valeurs contenues dans des variables JavaScript lorsque l'utilisateur appuie sur un bouton javascript.

J'ai posé ma question sur la liste de diffusion des utilisateurs de webkit. On verra bien.

Je pense que ça doit être possible en utilisant des delegates ou des notifications mais je n'ai jamais fait ça et Webkit est encore peu documenté je trouve. Ce dont j'ai peur c'est qu'il faille descendre plus bas dans WebCore et/ou le JavaScriptCore
 

aLittleWoodElfe

Membre junior
28 Février 2004
81
1
La solution à mon problème :

Pour récupérer une variable javascript de la page :
_script = [[NSString alloc] initwithString: @"return g_strId"];
_result = [[NSString alloc] initwithString: [webView stringByEvaluatingJavaScriptFromString: _script]];

Pour savoir quand une action JavaScript a été faite :
Implémenter le protocole informel WebPolicyDelegate sur le controler, en particulier la méthode webView:decidePolicyForNavigationAction:request:frame:decisionListener:

Un peu de code pour être plus clair :
-le JavaScript : <a href="#" onclick="Confirm()">Confirmer</a>

-la méthode en Obj-C :

- (void)webView:(WebView *)sender decidePolicyForNavigationAction:(NSDictionary *)actionInformation request:(NSURLRequest *)request frame:(WebFrame *)frame decisionListener:(id<WebPolicyDecisionListener>)listener
{
if( [actionInformation objectForKey:mad:"WebActionNavigationTypeKey"] != nil )
{
NSLog([[actionInformation objectForKey:mad:"WebActionNavigationTypeKey"] description]);
//this NSLog was just to know the returned values, now I can test them and do what i want
}
[listener use];
}


En fait je n'intercepte pas l'appel à une fonction JavaScript mais celui au "href" qui lance ce JavaScript.