2012-08-22 4 views
1

Je veux obtenir le contenu de ce tag que je touche dans webview dans la chaîne. Supposons que j'ai 5 paragraphe et que j'appuie sur un alors je veux le contenu de ce paragraphe dans la chaîne. Comment puis-je y parvenir? MerciAndroid Webview toucher le contenu

Répondre

0

Eh bien, c'est très facile, mais vous devez le faire en pièces, et vous auriez besoin de JavaScript.

1.- Activer JavaScript dans votre page Web.

web.getSettings().setJavaScriptEnabled(true); //"web" is the object of type WebView 

2.- Créez une interface JavaScript entre le WebView et le code HTML.

public class JavaScriptInterface { 

    private Handler myHandler = new Handler(); 

    public void getParagraph(final String paragraph){ 
     myHandler.post(new Runnable() { 
      @Override 
      public void run() { 
       //Do something with the String 
      } 
     }); 
    } 
} 

REMARQUE: l'intérieur de la méthode run, vous allez ajouter tout ce que vous devez traiter avec la chaîne extraite du Html. Cette classe peut être créée à l'intérieur de la classe où vous créez le WebView ou en tant que classe distincte si vous allez utiliser ce même comportement d'une autre activité.

3.- Envoyer l'interface à WebView.

web.addJavascriptInterface(new JavaScriptInterface(), "android"); 
/* In this case "android" is the name that you will use from the Html to call 
your methods if is not too clear yet, please keep reading */ 

4.- Vous devez ajouter le gestionnaire d'événement onClick à chacune de vos balises P.

<p onclick="android.getParagraph(this.innerText);">Text inside the paragraph</p> 
/*android was the name we set for the interface in step 3, getParagraph is the name 
of the method created on step2,"this.innerText" retrieves the text inside the paragraph*/ 

REMARQUE: Tous les noms que vous voyez sur mon exemple peut être changé, mais si vous changez le nom de la classe Java n'oubliez pas de changer tous les appels dans le code HTML

+0

j'ai lu la Documentation. Mais j'ai seulement utilisé cette méthode une fois, et c'était pour quelque chose de légèrement différent, je pensais que peut-être que l'extra pourrait contenir la chaîne de paragraphe quand le type était 'UNKNOWN_TYPE'. Mais n'ayant pas eu le temps de tester cette théorie, je me suis dit que je la partagerais avec OP au cas où cela pourrait les aider. Anywho cela ressemble à une bonne solution merci pour le partage. – FoamyGuy

+0

votre bienvenue [@FoamyGuy] (http://stackoverflow.com/users/507810/foamyguy), je sais que vous l'avez fait avec de bonnes choses à l'esprit: D –