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

  • Antworten:8
Gelöschter Account
  • Forum-Beiträge: 10

29.04.2018, 09:54:52 via Website

Sehr geehrte Damen und Herren,

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

So bin vorgegangen :

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)

Kommentieren
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

29.04.2018, 10:06:51 via App

Hallo Kelly,
herzlich willkommen hier im Forum :)

hast du den Callback gesetzt und führst findAllAsync erst aus wenn die Seite geladen ist.

https://stackoverflow.com/a/37992831

— geändert am 29.04.2018, 10:07:04

LG Pascal //It's not a bug, it's a feature. :) ;)

Hilfreich?
Kommentieren
Gelöschter Account
  • Forum-Beiträge: 10

29.04.2018, 11:50:53 via Website

Pascal P.

Hallo Kelly,
herzlich willkommen hier im Forum :)

hast du den Callback gesetzt und führst findAllAsync erst aus wenn die Seite geladen ist.

    setContentView(R.layout.activity_main);





    helper = new Main2Activity(this);
    Wetter = (WebView) findViewById(R.id.wetter);
    Wetter.setWebViewClient(new WebViewClient());
    Wetter.loadUrl("url");







    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());

    }


    Button button = findViewById(R.id.button);
    button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Wetter.reload();
            Toast.makeText(getApplicationContext(), "Webseite wird aktualisiert",
                    Toast.LENGTH_LONG).show();


        }
    });


}

}

Hilfreich?
Kommentieren
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

29.04.2018, 12:21:03 via App

Du.musst das dann so machen wie in dem Beispiel oben.
WebView#equals per Text geht da nicht.

LG Pascal //It's not a bug, it's a feature. :) ;)

Hilfreich?
Kommentieren
Gelöschter Account
  • Forum-Beiträge: 10

29.04.2018, 18:43:38 via App

webview.setWebViewClient(new WebViewClient() { @Override public void onPageFinished(WebView view, String url) { if (textToSearch != null && textToSearch != "") { webview.findAllAsync(textToSearch);

Werde ich nur diesen Teil brauchen?

— geändert am 29.04.2018, 21:24:54

Hilfreich?
Kommentieren
Jokel
  • Forum-Beiträge: 1.530

30.04.2018, 09:55:24 via Website

Hallo
ich denke es müste in etwas so aussehen.

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

       // hier dein Code 

    }); 

Denn "findAllAsync" leitet wenn es etwas findet es an den Listner weiter. Dies müste der "setFindListener" sein laut Googel Doku.
Deshalb musst du ihn auch setzen und überschreiben. Dann in ihm deinen Code ausführen.

da ich noch keinen Link Posten kann der Link ohne das https
://developer.android.com/reference/android/webkit/WebView.html#findAllAsync%28java.lang.String%29

— geändert am 30.04.2018, 09:59:34

Hilfreich?
Kommentieren
Jokel
  • Forum-Beiträge: 1.530

30.04.2018, 10:01:34 via Website

Ok habe erst jetzt gesehen das der Account gelöscht ist wir wohl nicht mehr benötigt.

Hilfreich?
swa00
Kommentieren
swa00
  • Forum-Beiträge: 3.704

30.04.2018, 10:03:20 via Website

Auch bei uns hat er ihn gelöscht :-)

https://www.android-hilfe.de/forum/android-app-entwicklung.9/mit-webview-findallasync-ein-wert-ueberpruefen-hilfe.875005.html

Ging ihm wohl alles zu langsam mit unserer Hilfe :-)

@Pascal P. , @Ludy - Hier kann wohl zu

— geändert am 30.04.2018, 10:05:24

Liebe Grüße - Stefan
[ App - Entwicklung ]

Hilfreich?
Kommentieren