webview et transitions

yodarkyodark Membre
08:36 modifié dans API UIKit #1
Bonjour,

petite question... certaines pages optimisées iphone ouvrent un nouvelle fenêtre navigateur a chaque click sur un lien c'est le cas de
http://cydia.saurik.com/ par exemple.
Quand ces type de pages sont ouvertes dans une application via une webview on a un joli effet de transition de page en page.
Par contre quand je lance ces pages depuis mon application que j'ai codé avec xcode rien ne se passe quand je click sur un lien.

J'imagine qu'il faut configurer la webview pour jouer la transition quand on ouvre une nouvelle page. Cependant il n'y a aucun paramètre de ce type dans la doc... comment faire ?

Réponses

  • NoNo Membre
    08:36 modifié #2
    J'ai peine à  comprendre.

    Le fait d'ouvrir une nouvelle fenêtre (ou onglet) lors d'un clic sur un lien est une propriété de la norme html (typiquement, l'attribut target d'une balise <a> avec la valeur _blank).

    L'effet de transition que tu évoques semble (je n'ai pas d'iPhone) être le fait du Safari de iPhone lors de l'ouverture de cette nouvelle fenêtre/onglet. Donc ça n'aurait rien à  voir avec webview (qui est un élément d'interface graphique permettant la visualisation du html).

    Si tu veux avoir de tels effets dans ta propre appli (qui utilise les webviews), c'est à  toi de les coder.
  • Philippe49Philippe49 Membre
    08:36 modifié #3
    Il y a plusieurs solutions.
    Ouvre la doc iPhone Reference Library>Sample Code (dans l'onglet Resource Types) tu trouveras plusieurs exemples à  consulter, (par exemple View Transitions, mais je ne sais pas si c'est ton besoin).
  • yodarkyodark Membre
    08:36 modifié #4
    En fait j'ai du mal m'exprimer. Pour ce qui est de l'ouverture de la page dans une nouvelle fenêtre aucun problème _blank

    Le seul problème est quand j'ouvre une page avec un _blank dans mon webview rien ne se passe(comme si je n'avais pas clické).
    Alors que dans beacoup de programes iphone il y a une transition et la nouvelle page est affichée.
    Si c'est une transition de vue ne n'ai pas trouvé comment detecter un clic sur un certain type de lien _blank afin d'appeler une nouvelle vue et un nouveau webview.

    Les seules méthodes présentes sont

    Setting the Delegate

        *  delegate  property

    Loading Content

        * – loadData:MIMEType:textEncodingName:baseURL:
        * – loadHTMLString:baseURL:
        * – loadRequest:
        *  request  property
        *  loading  property
        * – stopLoading
        * – reload

    Moving Back and Forward

        *  canGoBack  property
        *  canGoForward  property
        * – goBack
        * – goForward

    Setting Web Content Properties

        *  detectsPhoneNumbers  property
        *  scalesPageToFit  property

    Running JavaScript

        * – stringByEvaluatingJavaScriptFromString:


    et le delgate

      *  – webView:shouldStartLoadWithRequest:navigationType:  optional method
        * – webViewDidStartLoad:  optional method
        * – webViewDidFinishLoad:  optional method
        * – webView:didFailLoadWithError:  optional method

  • NoNo Membre
    08:36 modifié #5
    Effectivement, t'avais mal expliqué.

    Par défaut, webkit ne gère pas le "multifenêtrage".
    C'est à  l'application de le faire (par exemple créer une nouvelle webview pour afficher le nouveau contenu, avec éventuellement un effet de transition entre les 2).

    Tout ce décide au niveau d'un delegate de webview
    webView:decidePolicyForNewWindowAction:request:newFrameName:decisionListener:
    qui fait partie du protocol WebPolicyDelegate.
  • yodarkyodark Membre
    08:36 modifié #6
    okay merci je vais étudier ca !
Connectez-vous ou Inscrivez-vous pour répondre.