Android Webview Ancre de Lien (lien Saut) ne fonctionne pas
J'ai une WebView dans mon Application Android qui est du chargement d'une chaîne HTML à l'aide de la loadDataWithBaseURL() la méthode. Le problème est que locaux les liens d'ancrage (<a href="#link">
...) ne fonctionnent pas correctement. Lorsque le lien est cliqué, il est mis en évidence, mais ne faites défiler jusqu'à la correspondante de l'ancre.
Cela ne fonctionne pas si j'utilise la WebView est loadUrl() méthode pour charger une page qui contient des liens d'ancrage. Cependant, si je charge la même URL dans le navigateur, les liens d'ancrage faire le travail.
Est-il une manipulation spéciale nécessaire pour les faire fonctionner pour une WebView?
Je suis l'aide de l'API v4 (1.6).
Il n'y en a pas beaucoup pour le code, voici les parties pertinentes de certains test de code que j'ai travaillé avec:
WebView detailBody = (WebView) findViewById(R.id.article_detail_body);
String s = "<a href=\"#link\">LINK!</a><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><a name=\"link\"></a>Testing!";
detailBody.loadDataWithBaseURL(API.HomeURL(this), s, "text/html", "utf-8", "");
- Salut Joel poster votre code...
- J'ai posté les parties pertinentes du code. Comme vous pouvez le voir il n'y a pas beaucoup à elle. Le n ° de style ancre des liens ne pas causer la WebView pour faire défiler jusqu'à l'ancre.
- vérifier ma réponse pour le même problème.
- Pour la solution, voir cette réponse: stackoverflow.com/a/15162998/2116185
Vous devez vous connecter pour publier un commentaire.
Il semble que le problème est que j'ai eu une WebView dans un ScrollView. La WebView n'est pas en mesure de faire défiler un lien vers une ancre lorsqu'il est configuré comme ceci. Après refactoring ma mise en page pour éliminer la ScrollView, l'ancre des liens fonctionnent correctement.
Android Webview Ancre de Lien (lien Saut) ne fonctionne Pas
Vrai, WebView Ancre des Liens, ou de Sauter les Liens mis en place par le LIEN du n ° de l'extension de l'URL ne fonctionnera pas lorsque le WebView est à l'intérieur d'un ScrollView(*).
Encore, le problème pour moi et apparemment d'autres, c'est que le #LIEN ne fonctionne quand il est lancé à partir d'un contact dans un href, mais il est ignoré lorsqu'il est lancé via l'URL. D'autres symptômes incluent la navigation sur le lien seulement sur la première fois à une session ou à naviguer vers le bas du fichier html.
La Solution est de charger l'url après un court délai.
Voici un exemple:
Mon code html est enregistré à l'actif: res/assets/help.html
Avec des ancres comme ceci:
Et chargé comme ceci:
J'ai ajouté de la minuterie comme ceci:
Remarque: des délais plus Courts, tels que les 100ms n'a pas pu naviguer sur le lien.
(*) Il s'avère que beaucoup d'entre nous avons notre WebViews à l'intérieur de ScrollViews parce que nous avons commencé avec un TextView rendu Spannable texte qui prend en charge le code HTML et nécessite une ScrollView. De toute façon, retirez la ScrollView dès que vous convertissez votre TextView dans une WebView.
Ma Solution est , Cochez cette Réponse
J'ai eu un problème similaire. Rien ne serait sauter à l'ancre des balises dans le code html. Je n'avais pas mon WebView dans un ScrollView. Au lieu de cela, le problème a été l'url de base je passais dans loadDataWithBaseURL n'ont pas un signe deux-points (':') en elle. Je crois que le baseUrl besoin d'avoir un peu de texte, puis deux points, puis un peu plus de texte, par exemple "app:htmlPage24".
Voici donc l'appel initial à mon WebView, juste pour charger les données dans la chaîne HTML_24:
Puis-je avoir une liste qui sauts de sections sur l'écran, en fonction de l'élément de la liste que vous appuyez sur:
HTML_24 est quelque chose comme:
WebView Android 4.0 ne parvient pas à ouvrir les Url avec des liens.
par exemple
"fichier:///android_asset/aide.html#helplinkcontacts"
Ici est de savoir comment je suis arrivé il
Et de définir la coutume WebViewClient classe
J'ai été confrontée au même problème. L'ancre du lien saut à l'arbitraire de la position. Assurez-vous de ne pas cacher les
webview
lors du chargement.Utilisation
Invisible
au lieu degone
.Ce changement a fixé mon problème.
le mot "Test!" doit être à l'extérieur de l'écran pour voir s'il fonctionne.