Android Open target _blank liens dans WebView avec le navigateur externe
- Je construire un WebView
qui affiche un site web. Le site web contient des liens sans target="_blank"
attribut et certains avec elle.
- Je besoin pour ouvrir les liens avec target
défini dans la norme externe navigateur de votre appareil, et ceux sans elle à l'intérieur de la WebView.
Je suis en utilisant un WebViewClient
et j'ai essayé grâce à cette fonction, mais encore tous mes liens sont ouverts dans le WebView
:
Variante 1:
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
return super.shouldOverrideUrlLoading(view, url);
}
Variante 2:
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
Quelqu'un sait comment je peux ouvrir le vide-les liens à l'extérieur?
Merci!
PS: Pour éviter missunderstandings: je ne peux pas utiliser cette approche parce que la seule façon que je sais que le lien doit être ouvert externallly est le target
attribut.
OriginalL'auteur Ron | 2013-08-12
Vous devez vous connecter pour publier un commentaire.
Après avoir visité les liens ci-dessus, je viens avec ce code et espérons que cette aide.
Est-il un moyen de le faire à l'ordinaire webviewclient?
parfois
data
est nullCette solution est presque parfait. Sauf que, l'image au sein d'un <a> éléments serait ouvert dans une nouvelle fenêtre lorsque l'image est frappé, alors que le <a> elle ne sera pas comme prévu.
Comment gérer le cas où les données sont nulles?
OriginalL'auteur Carson Ip
J'ai fait face à un même problème. Je voulais ouvrir un de mes sites web les pages à l'intérieur de l'application et de repos toutes les pages doivent être ouverts dans le Navigateur par Défaut. J'ai utilisé une technique. Si l'URL contient mon nom de site web, puis je l'ai ouvert dans WebView et de repos tous les sites ouverts dans le navigateur par Défaut.
Trouverez ci-Dessous le code, j'espère qu'Il serait utile pour tous ceux qui sont confrontés à de tels problèmes.
target="_blank"
comme l'a demandé.Juste pour compléter la réponse, startActivity n'était pas disponible pour moi, j'ai appelé
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
et d'appel à l'activité enview.Context.ApplicationContext.StartActivity(intent);
OriginalL'auteur user3776637
J'ai également le même problème et maintenant j'ai trouvé la solution.
Vous devez également utiliser WebChromeClient.Vous pouvez voir cette et cette .
Et vous pouvez définir un WebViewClient à la nouvelle WebView et remplacer le shouldOverrideUrlLoading méthode, alors vous pouvez obtenir l'url et faire ce que vous voulez ici. Si vous ne définissez pas la WebViewClient, je pense qu'il travaille trop. Dans mon cas, je veux obtenir l'url j'ai donc mis un WebViewClient à la nouvelle WebView.
Par ailleurs, si vous supprimez l'ancien webview puis quand vous revenez en forme le navigateur,la webview est vide. J'ai donc conservé la webview et a ajouté un nouveau, mais de régler la visibilité à "disparu".
OriginalL'auteur ffts