String - Übergabeparameter an Webview

  • 2 Antworten
  • Letztes Antwortdatum
B

bernd_1980

Neues Mitglied
0
Hallo Forum,
ich hätte eine Frage bzgl. Übergabeparameter an eine Webview vom Java - Code aus.
Ich habe mehrere GeoJson Daten ( verschiedene Städte und Länder ) und der User kann entscheiden, welche er sich anzeigen lassen will.
Ich habe mein Problem nun so bewerkstelligt, dass für Deutschland die der String: 00000 auf 00001 gesetzt wird, Deutschland und Österreich auf 00010 zB. gesetzt wird usf.

Bei manchen Zahlen passiert es nun, dass nicht der String 00010 übergeben wird, sondern der String wird plötzlich als 42 oder so ausgegeben.

Leider kann ich mir keinen Reim daraus machen und nur einen Integer übergeben funktioniert auch nicht, anscheinend kann nur ein String - Objekt übergeben werden.

Hatte auch jemand bereits dieses Problem bzw. wie könnte ich das Problem lösen?

Danke Euch vielmals!

LG
 
Hast du Code wie du das versuchst?
 
Hallo,
ja ich kann den Code anbieten.
Bitte nicht beschweren, dass der Code so grauslich ist, ist schon lange her, dass ich ihn geschrieben habe und nachdem es endlich funktioniert hat, habe ich ihn nicht mehr überarbeitet, will das nun aber tun:

Hier setze ich die Variablen auf 12345, je nachdem, was der User ausgewählt hat:

Code:
        if(prefsmodel != null && valueParkzone == true){
            Log.d("Kurzparkzonen", "Kurzparkzonen sind gesetzt!");
            StringResult = "1";        
        }else{
            StringResult = "0";
            Log.d("Nothing", "Kurzparkzonen sind nicht gesetzt!");
        }
      
        if(prefsmodel != null && valueParkstreifen == true){
            Log.d("Kurzparkstreifen", "Kurzparkstreifen sind gesetzt!");
            StringResultstreifen = "2";        
        }else{
            StringResultstreifen = "0";
            Log.d("NothingParkstreifen", "Kurzparkstreifen sind nicht gesetzt!");
        }
      
        if(prefsmodel != null && valueAnreinerparkzone == true){
            Log.d("ANRAINERPARKZONE", "Anrainerparkzonen sind gesetzt!");
            StringResultanreinerparkzone = "3";        
        }else{
            StringResultanreinerparkzone = "0";
            Log.d("NothingAnreinerparkzone", "Anrainerparkzonen sind nicht gesetzt!");
        }
      
        if(prefsmodel != null && valueParkAndRide == true){
            Log.d("PARKANDRIDE", "Park & Ride Anlagen sind gesetzt!");
            StringResultParkAndRide = "4";        
        }else{
            StringResultParkAndRide = "0";
            Log.d("NothingParkAndRide", "ParkAndRide sind nicht gesetzt!");
        }
      
        if(prefsmodel != null && valueParkAndRideGraz == true){
            Log.d("PARKANDRIDE", "Park & Ride Anlagen für Graz sind gesetzt!");
            StringResultParkAndRideGraz = "5";        
        }else{
            StringResultParkAndRideGraz = "0";
            Log.d("NothingParkAndRideGraz", "ParkgaragenGraz sind nicht gesetzt!");

        final String result = StringResult + StringResultstreifen + StringResultanreinerparkzone + StringResultParkAndRide + StringResultParkAndRideGraz;

        }

Und hier rufe ich den browser auf und übergebe ihm die Strings:

Code:
        browser.setWebViewClient(new WebViewClient()
            {
                @Override
                public void onPageFinished(WebView view, String url)
                {
                    final String messagea = readFileKurzparkzone();
                    final String messageb = readFileKurzparkstreifen();
                    final String messagec = readFileAnreinerparkzone();
                    final String messaged = readFileParkAndRide();
                    final String messagee = readFileParkAndRideGraz();
                    browser.loadUrl("javascript:AndroidFunction(" + messagea + "," + messageb + "," + messagec + "," + messaged + "," + messagee + "," + result + ")");
                }
            });
            browser.loadUrl("file:///android_asset/index.html");

Und hier letzten Endes der JavaScript Code:

Javascript:
<html>
<head>
    <link rel="stylesheet" href="http://cdn.leafletjs.com/leaflet-0.6.4/leaflet.css" />
    <script src="http://cdn.leafletjs.com/leaflet-0.6.4/leaflet.js"></script>
    <script src="../layer/vector/OSM.js"></script>
    <script type='text/javascript'>
    function AndroidFunction(msga, msgb, msgc, msgd, msge, msgf){
        a = msga;
        b = msgb;
        c = msgc;
        d = msgd;
        e = msge;
        f = msgf;
        init(a, b, c, d, e, f)
    }
        function init(a, b, c, d, e, f)

Ich kann jetzt leider nicht mehr genau sagen, ob die Übergabeparameter bereits bei der alert(..) Ausgabe falsch sind, aber ich bin mir relativ sicher, dass dem so ist, ansonsten hätte ich gewusst, wo ich suchen muss.

Danke Dir vielmals für jede Hilfe.
 
Zurück
Oben Unten