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

J

Janoroid

Gast
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
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
 
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

});
 
  • Danke
Reaktionen: Janoroid
Hallo @Jokel-W

auch hier hat der Nutzer seine Löschung beantragt ... Tut mir Lied
 
Ok dann ist ihm eben nicht zu helfen wer nicht will der hat schon.
 
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());

}
}
});
 
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.
 
  • Danke
Reaktionen: Janoroid
@Jokel-W Vielen Dank für ihre Hilfe.
Durch ihnen bin ich weitergekommen.

Wie schließt man dieses Thema?

MfG,Kelly
 

Ähnliche Themen

R
  • RalfKahl
Antworten
10
Aufrufe
311
RalfKahl
R
D
Antworten
17
Aufrufe
416
datNeMo
D
B
Antworten
4
Aufrufe
500
bb321
B
Zurück
Oben Unten