2017-08-21 4 views
1

Comment puis-je forcer BrowserComponent à ne parcourir que deux domaines? Cas d'utilisation: le BrowserComponent doit changer de page pour toute raison légale, par exemple l'utilisateur clique sur un lien ou la page fait une redirection (par javascript, metatag, redirection d'en-tête http, etc.). Si la nouvelle page est sur domain1 ou domain2, c'est OK et BrowserComponent peut le charger; si c'est sur un autre domaine, le BrowserComponent devrait appeler le O.S. outil de navigation natif (par exemple, Android peut afficher un sélecteur de navigateur).Codename One - BrowserComponent: autorise la navigation uniquement sur deux domaines

Merci beaucoup pour votre aide.

Répondre

1

Voilà pour quoi existe BrowserNavigationCallback. C'est un outil puissant qui vous permet de communiquer sur le thread du navigateur natif et peut bloquer toute navigation qui n'est pas là. FYI Comme il s'agit du thread natif du navigateur, il est crucial de ne pas le bloquer et d'y accéder.

Le pont JavaScript sous-jacent est également implémenté par-dessus, où le code JS envoie une requête de navigation au code Java.

+0

Ok, j'ai trouvé de la documentation: https://www.codenameone.com/manual/components.html#_navigationcallback Le code suivant est-il correct pour l'EDT? [https://gist.github.com/jsfan3/a7627e9e377a740dbc4a2838853bf201](https://gist.github.com/jsfan3/a7627e9e377a740dbc4a2838853bf201) (Je n'ai pas trouvé un moyen de mettre du code formaté dans un commentaire, c'est pourquoi j'ai utilisé un lien externe, je suis désolé) –

+0

Oui. Vous avez utilisé 'callSerially', qui est la bonne façon de faire cela! –