Mit Webview.findallasync ein Wert überprüfen -Hilfe

Janoroid

Janoroid

Neues Mitglied
Threadstarter
Sehr geehrte Damen und Herren,

ich möchte mit einem Webview meine Webseite nach einen bestimmen Wort durchsuche.

So bin vorgegangen :

Code:
findAllAsync("Nein!");

Jetzt wollte ich mit eine If-else Abfrage überprüfen, ob der Wert auf der Webseite existiert.

   if(Wetter.equals("Nein!") ) {

       Log.i("Keine Astro","keine Astronomie");
       Toast.makeText(getBaseContext(), "Keine Astronomie", Toast.LENGTH_LONG).show();


   }else {
         String title = "Wetterstation : Clear Sky!";
         String content ="Die Lena, meldet gutes Wetter";
       Notification.Builder builder = helper.wetterlena(title,content);
       helper.getManager().notify(new Random().nextInt(),builder.build());

   }
Nur bekomme ich kein Wert zurück.

Was mache ich nur falsch?

Mfg, Kelly aus (Australien)
 
Zuletzt bearbeitet von einem Moderator:
Bearbeitet von derstein98 - Grund: Habe den Code eingebettet @derstein
swa00

swa00

Moderator
Teammitglied
Hallo Janoroid,

auch hier herzlichst willkommen.

Im anderen Forum hat dir bereits Pascal schon ganz gut geholfen
und gib der Community grundsätzlich ein wenig Zeit, auf deine Beiträge zu antworten.

Die Beantwortungen der Fragen finden freiwillig und vor allem in der Freizeit statt.


Insbesondere zweimal dei Gleiche Frage in zwei verschiedenen Foren , verwirrt meistens und führt m.E. nicht zum Ziel.

Lieben Dank
 
J

Jokel-W

Neues Mitglied
Hallo
du musst einen Listner benutzen denn wenn etwas gefunden wird kommt es dort an.


webview.findAllAsync(textToSearch);
webview.setFindListener(new FindListener() {
@override
public void onFindResultReceived(int activeMatchOrdinal, int number_match, boolean isDoneCounting) {

// hier dein Code

});
 
swa00

swa00

Moderator
Teammitglied
Hallo @Jokel-W

auch hier hat der Nutzer seine Löschung beantragt ... Tut mir Lied
 
J

Jokel-W

Neues Mitglied
Ok dann ist ihm eben nicht zu helfen wer nicht will der hat schon.
 
Janoroid

Janoroid

Neues Mitglied
Threadstarter
Muss ich das so machen?

Wetter.setWebViewClient(new WebViewClient());
Wetter.loadUrl("http://wetterstation-mi.bplaced.net/home/pi/192.168.0.38/");
Wetter.findAllAsync("Ja");
Wetter.setFindListener(new WebView.FindListener() {
@override
public void onFindResultReceived(int activeMatchOrdinal, int numberOfMatches, boolean isDoneCounting) {




if(Wetter.equals("Nein")) {

Toast.makeText(getBaseContext(), "Keine Astronomie", Toast.LENGTH_LONG).show();


}else {
String title = "Wetterstation : Clear Sky!";
String content = "Die Lena, meldet gutes Wetter";
Notification.Builder builder = helper.wetterlena(title, content);
helper.getManager().notify(new Random().nextInt(), builder.build());

}
}
});
 
J

Jokel-W

Neues Mitglied
Hallo also habe es mal getestet ich würde es so machen.

Code:
 public class MainActivity extends AppCompatActivity  {

    WebView webview;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        webview = (WebView) findViewById(R.id.webview);
        webview.loadUrl("http://wetterstation-mi.bplaced.net/home/pi/192.168.0.38");

        webview.setWebViewClient(new WebViewClient() {
            @SuppressLint("ClickableViewAccessibility")
            @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN)
            @Override
            public void onPageFinished(WebView view, String url) {
                String textToSearch = "Ja";

                webview.findAllAsync(textToSearch);  // is not supposed to crash


                webview.setFindListener(new WebView.FindListener() {
                    @Override
                    public void onFindResultReceived(int activeMatchOrdinal, int numberOfMatches, boolean isDoneCounting) {

                        if (isDoneCounting & numberOfMatches >0){
                            
                            // Hier dein Code wenn der String gefunden wurde


                        }

                    }

                });
            }

        });
    }
Frage was soll das immer mit den prüfen von "if(Wetter.equals("Nein")) " du hast doch auf den String geprüft, und wenn er im Html Code enthalten ist wird in die if Anweisung verzweigt sonst nicht.

Finde deinen Lösungsansatz nicht so sinnvoll denn du wilst doch bestimmt auch noch andere Parameter abfragen .
Bei so einer einfachen WebSeite würde ich den HTML Code in einen String laden und ihn mit StringOperationen duchsuchen.
 
Janoroid

Janoroid

Neues Mitglied
Threadstarter
@Jokel-W Vielen Dank für ihre Hilfe.
Durch ihnen bin ich weitergekommen.

Wie schließt man dieses Thema?

MfG,Kelly
 
Oben Unten