OnKeyPressed mit loadUrl Variable an Webview übergeben

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • OnKeyPressed mit loadUrl Variable an Webview übergeben

    Neu

    Hallo Leute,ich möchte gerne an eine Website die aktuelle Lautstärke übergeben. Wenn ich die Lautstärketaste drücke und wie in KEYCODE_VOLUME_DOWN dann per loadUrl einen Alert machen klappt auch alles. Wenn ich eine Funktion aufrufe oder gar versuche die Zahl in ein Textfeld zuschreiben per document.getElemenById() passiert garnichts. Auch die Toast einträge zum testen ob das Script irgendwo hängt geben leider keine Ausgabe. Hier habe ich den Verdacht das es nicht ausreicht mit this den Context zu definieren. Der Quellcode steht in meiner Startactivity die auch die Webview initialisiert.

    Quellcode

    1. @Override
    2. public boolean onKeyDown(int keyCode, KeyEvent event) {
    3. AudioManager AudioMan = (AudioManager) getSystemService(AUDIO_SERVICE);
    4. if(keyCode==KeyEvent.KEYCODE_VOLUME_UP)
    5. {
    6. Toast.makeText(this,"Es wurde die lauter oder leiser Taste gedrückt",Toast.LENGTH_LONG);
    7. vol=AudioMan.getStreamVolume(AudioManager.STREAM_MUSIC);
    8. try
    9. {mWebView.loadUrl("javascript:getAktVol('"+vol+"');");}
    10. catch(Exception e)
    11. {mWebView.loadUrl("javascript:getAktVol('"+e+"');");}
    12. Toast.makeText(this,"MaxVol ist:"+vol,Toast.LENGTH_LONG);
    13. return true;
    14. }
    15. else if(keyCode==KeyEvent.KEYCODE_VOLUME_DOWN)
    16. {
    17. vol=AudioMan.getStreamVolume(AudioManager.STREAM_MUSIC);
    18. mWebView.loadUrl("javascript:alert('"+vol+"');");
    19. return true;}
    20. else
    21. {return super.onKeyDown(keyCode, event);}
    22. }
    Alles anzeigen
  • Neu

    hallo das was mein vorredner sagt in punkto Java wird wohl richtig sein.

    Nur würde mich interessieren ob denn der maketext überhaupt ausgeführt wird.
    Das mit dem this ist mit Sicherheit nicht richtig. Denn du bist in einer Callback Methode und mit thist , wirst zu in dem Fall nicht auf die activity kommen.
    Versuche mal getApplicationContext(). Oder erstelle dir eine globale context variabel. Interessant wäre auch ob denn überhaupt in if und ersten else Zweig verzweigt wird, oder ob es direckt in den letzten else geht. Somit auch gar nichts gemacht wird.
    Wenn du auf Fehlersuche bist ist es immer besser dafür Log zu benutzen und das logcat anzuschauen oder den debuggen zu Benutzen.
    Ein Feedback auf Tipps ist auch schön. :P