9
votes

Liens d'ouverture dans le navigateur de périphérique externe avec Cordova / JQuery-Mobile

J'ai un tas de liens dans mon application. J'ai ajouté rel = 'externe' cible = '_ vide' à tous.

Dans l'émulateur d'ondulation, ou dans un navigateur de bureau régulier, cela fonctionne bien. Mais sur mon Android (JB 4.2.2), il ouvre le lien dans la même fenêtre. Frapper "Retour" me ramène à l'application, mais tout est vissé et que l'application ne fonctionne pas comme prévu (les événements de script ne réagissent pas), jusqu'à ce que physiquement rechargée.

Comment puis-je vous assurer qu'un lien s'ouvre dans le navigateur de l'appareil? Dois-je utiliser un plugin Cordova?

(J'utilise Cordova 2.9.0, JQuery 1.10.1, JQuery Mobile 1.3.1)


0 commentaires

5 Réponses :


-3
votes

vous pouvez simplement supprimer cible Attribut

Utilisez uniquement l'attribut "rel"

J'espère que cela pourrait résoudre votre problème car je fais face à ce problème plusieurs fois.


1 commentaires

Impossible d'image Ce serait la solution pour votre problème ASWELL. Peut-être que vous avez résolu avec autre chose.



16
votes

Cela a été vraiment incité avec Cordoue / Phonegap dans les derniers éventuels versions, je crois à cause du inapprowser travail qui pourrait être une solution pour vous.

Qu'est-ce qui fonctionne pour que nous puissions lancer dans le navigateur externe est le suivant: P>

        $(document).on('mousedown','a', function(e) {
            e.preventDefault();
            var elem = $(this);
            var url = elem.attr('href');
            if (url.indexOf('http://') !== -1) {
                window.open(url, '_system');
            }
        });


1 commentaires

S'il vous plaît voir la réponse de @ Nicolemccoy ci-dessous qui est plus correcte. Imo il vaut mieux résoudre celui-ci aussi.



1
votes

Il y a quelques questions comme celle-ci, mais toutes essaient d'utiliser IntappBrowser. J'ai utilisé le plugin suivant:

ChromeLauncher.open(url)


0 commentaires

3
votes

J'ai eu des problèmes avec la réponse de Jason Farnsworth. Tirer toujours l'action par défaut une fois que l'utilisateur est retourné à l'application dans IOS. Donc, après un petit peaufinage de son code, je suis arrivé à ce qui suit et cela s'est comporté comme prévu. XXX


0 commentaires

0
votes

J'ai cherché des âges pour la bonne réponse et réussi à résoudre ce moyen d'autre côté des réponses déjà données.

Tout d'abord, les anciennes versions de Cordoue semblent casser lorsque vous utilisez des méthodes sur les nouvelles versions de Android. Mise à jour de votre version de Cordova à la dernière version apportera quelques problèmes de migration possibles dans votre projet actuel, mais vaut le tir de mise à jour. Mis à jour sur Cordoue 5.0 à partir de 2,8, coûte une demi-heure de changement de code (juste quelques correctifs requis). Réprimandé, déployé et lancé avec succès après. Le bouton arrière a fait tomber mon application sur les anciennes versions de Cordoue. La version newer a fait fonctionner comme un charme avec la même ligne de code. Longue histoire courte, mise à jour Cordova, modifier quelques lignes si nécessaire et reconstruire votre beauté.

J'espère que cela vous aidera à ne pas les jours de Struggeing comme je l'ai fait.


0 commentaires