Ankündigung

Einklappen
Keine Ankündigung bisher.

Eigenes Javascript mit EDOMI verwenden

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Eigenes Javascript mit EDOMI verwenden

    Ich möchte ein Android-Tablet nur für die Visu von EDOMI verwenden und nutze die App "Kiosk Browser Lockdown" zur Anzeige.
    Der Kiosk-Browser wird dabei als Launcher eingerichtet und ist umfangreich konfigurierbar. Die App ist zwar nicht ganz billig, aber wirklich gut gelungen.
    Mit etwas Javascript (siehe hier) ist es möglich Apps zu starten oder Infos von Android anzeigen zu lassen.

    Beispiel:
    Diese Zeile startet bei einem Klick die App VLC Remote:
    HTML-Code:
    <a href="javascript:Android.openApplication('com.hobbyistsoftware.android.vlcremote_us');">VLCRemote starten</a>
    oder das selbe mit einem span-TAG:
    HTML-Code:
    <span onclick="javascript:Android.openApplication('com.hobbyistsoftware.android.vlcremote_us');">VLCRemote starten</span>
    Edit: Was funktioniert ist die Ausgabe z. B. der aktuell verbundenen WLAN-SSID:
    HTML-Code:
    SSID: {Android.getWIFISSID();}
    Hat jemand eine weitere Idee wie ich z.B. das Starten einer App nach einem klick realisieren kann...
    Zuletzt geändert von panzaeron; 29.08.2016, 08:56.

    #2
    Wenn Du einen iFrame per "Beschriftung" generierst, werden keinerlei Attribute (Farbe, etc.) vom iFrame übernommen, denn ein iFrame kannst Du Dir in diesem Fall wie ein neues Browserfenster vorstellen - der Inhalt ist also vollkommen unabhängig von der einbettenden Seite. Nur die "äußeren" Styles (Rahmen, etc.) werden berücksichtigt, da dies nichts mit dem iFrame zu tun hat. Generell ist das Angeben von HTML-Code in der Beschriftung allerdings ohnehin nicht vorgesehen - je nach Code kann diese nämlich durchaus den Rest der Visuseite beeinflussen oder gar unbrauchbar machen.

    Prinzipiell kannst Du beliebigen JS-Code per Beschriftung angeben (ist zwar auch nicht vorgesehen, sollte aber funktionieren). In diesem Fall also z.B.:

    Code:
    {Android.openApplication('com.hobbyistsoftware.android.vlcremote_us')}

    Wichtig hierbei sind die Klammern {...} - allerdings sorgt dieses Konstrukt (theoretisch) dafür, dass die App sofort aufgerufen wird, sobald das Visuelement sichtbar wird. Also ohne(!) Klick-Interaktion...

    Wenn die App per Klick gestartet werden soll wird's schwierig, denn der Klick-Handler ist ja schon von EDOMI "reserviert" worden. Ein simpler Link-Tag (wie von Dir beschrieben) sollte theoretisch aber funktionieren - hast Du das mal ausprobiert?

    Code:
     
     <a href="javascript:Android.openApplication('com.hobbyistsoftware.android.vlcremote_us');">VLCRemote starten</a>
    EDOMI - Intelligente Steuerung und Visualisierung KNX-basierter Elektro-Installationen (http://www.edomi.de)

    Kommentar


      #3
      Zitat von gaert Beitrag anzeigen
      Prinzipiell kannst Du beliebigen JS-Code per Beschriftung angeben (ist zwar auch nicht vorgesehen, sollte aber funktionieren). In diesem Fall also z.B.:

      Code:
      {Android.openApplication('com.hobbyistsoftware.android.vlcremote_us')}

      Wichtig hierbei sind die Klammern {...} - allerdings sorgt dieses Konstrukt (theoretisch) dafür, dass die App sofort aufgerufen wird, sobald das Visuelement sichtbar wird. Also ohne(!) Klick-Interaktion...
      Super , damit lässt sich zwar nicht das (sinnvolle) Starten einer externen App realisieren, aber die Ausgabe, z. B. die aktuelle SSID wie folgt:
      HTML-Code:
      SSID: {Android.getWIFISSID();}
      Zitat von gaert Beitrag anzeigen
      Wenn die App per Klick gestartet werden soll wird's schwierig, denn der Klick-Handler ist ja schon von EDOMI "reserviert" worden. Ein simpler Link-Tag (wie von Dir beschrieben) sollte theoretisch aber funktionieren - hast Du das mal ausprobiert?

      Code:
      <a href="javascript:Android.openApplication('com.hobbyistsoftware.android.vlcremote_us');">VLCRemote starten</a>
      Das funktioniert leider auch nicht, ich habe auch schon versucht mit position:absolute und z-index aus dem Eltern-Element "auszubrechen" ohne Erfolg. Vielleicht lässt sich ja bei Klick-Modus außer "Normal", "Langer Klick" auch "Kein Klick" realisieren?
      Was funktioniert ist das Element "Bild/Webseite" und einem externen iframe, welches allerdings keinen transparenten Hintergrund hat, sondern bei mir "diagonal gestreift" aussieht.

      Edit: Nur so eine Idee: Wenn ich Javascript in der Beschreibung ausführen kann, kann ich dann nicht auch das click-Event vom Button removen bzw. die eigne Funktion hinzufügen?
      Zuletzt geändert von panzaeron; 29.08.2016, 10:38.

      Kommentar


        #4
        Wie schon angedeutet: JS oder HTML hat eigentlich in der Beschriftung nix zu suchen (mit Ausnahme der EDOMI-eigenen Funktionen). Daher ist dies auch nicht dokumentiert in der Hilfe - und ich möchte die Visu auch nicht dahingehend erweitern, da sonst zuviele "Gefahren" generiert werden (also "verhuddeln" der Visu, etc.).

        Im Detail ist das alles ein wenig komplexer, z.B. Bildschirmschonerseite, etc... Das Verbiegen von Click-Handlern usw. würde ich daher lieber lassen
        EDOMI - Intelligente Steuerung und Visualisierung KNX-basierter Elektro-Installationen (http://www.edomi.de)

        Kommentar


          #5
          OK, dann bleibe ich beim iframe mit dem Bild/Webseite-Element. Weißt du warum die iframes nicht transparent sind? Eigentlich sollte das standardmäßig so sein wenn beim body-Tag background: none definiert ist...

          Kommentar


            #6
            Versuch's mal mit background:transparent - natürlich im body des iFrames (is klar). "none" bedeutet nicht immer "transparent", sondern halt "nix".
            EDOMI - Intelligente Steuerung und Visualisierung KNX-basierter Elektro-Installationen (http://www.edomi.de)

            Kommentar


              #7
              Zitat von gaert Beitrag anzeigen
              Versuch's mal mit background:transparent - natürlich im body des iFrames (is klar). "none" bedeutet nicht immer "transparent", sondern halt "nix".
              Danke für den Tipp, aber es funktioniert nicht, ich habe einen Screenshot angehängt, das obere "VLC Remote" ist das Bild/Webseiten-Element ohne Hintergrund, darunter mit blauem Hintergrund (sollte so wie links aussehen). Wenn ich das iframe in eine andere Seite einbaue, hat es einen transparenten Hintergrund. Außerdem verstehe ich nicht wo die Streifen herkommen? Hat jemand noch eine Idee oder transparente iframes im Einsatz und keine Probleme?

              iframe.png

              Kommentar


                #8
                Das Streifenmuster erzeugt EDOMI höchst selbst - dies soll symbolisieren, dass die eingebettete iFrame-URL keinen Hintergrund hat. In Deinem Fall ist dies natürlich hinderlich - im Normalfall ist es jedoch nützlich, da auf diese Weise erkannt werden kann ob der iFrame-Inhalt bereits geladen ist oder nicht.

                Du müsstest also dafür sorgen, dass der Inhalt(!) des iFrames einen background bekommt - nicht das Visuelement selbst. Normalerweise soll der iFrame ja eine Webseite anzeigen und diese hat i.d.R. eine Hintergrundfarbe
                EDOMI - Intelligente Steuerung und Visualisierung KNX-basierter Elektro-Installationen (http://www.edomi.de)

                Kommentar


                  #9
                  OK, ich verstehe deine Idee dahinter. Aber wenn ein iframe nicht geladen werden kann bekomme ich doch eh eine Fehlermeldung (z. B. Not found, timeout, forbidden usw.) und sehe das was nicht stimmt...
                  Für meinen einfarbigen Hintergrund kann ich natürlich der iframe-Seite einen Hintergrund geben und mache ich auch, aber wenn der Hintergrund einen Farbverlauf hat, dann ist es schwierig das im iframe nachzubilden. Deshalb habe ich die Hoffnung, dass jemand die iframes putzt und es bald streifenfreie gibt (Das soll ja mit Mikrofasertüchern ganz gut gehen )


                  Kommentar


                    #10
                    Es geht eher darum, dass der iFrame noch(!) nicht geladen wurde, z.B. wenn das Laden der Website ein paar Sekunden dauert. Dann wird das Streifenmuster angezeigt, um dies zu verdeutlichen. Natürlich könnte ich dieses "Feature" auch weglassen (transparent), aber dann ist das Visuelement u.U. solange unsichtbar, bis die Seite im iFrame geladen worden ist. Dies ist m.E. verwirrend, da u.U. erst nach einigen Sekunden plötzlich der Inhalt wie aus dem Nichts aufploppt

                    Ich werd's mal auf meine Liste setzen: Optionales Streifenmuster Ein/Aus
                    EDOMI - Intelligente Steuerung und Visualisierung KNX-basierter Elektro-Installationen (http://www.edomi.de)

                    Kommentar


                      #11
                      Zitat von gaert Beitrag anzeigen
                      Ich werd's mal auf meine Liste setzen: Optionales Streifenmuster Ein/Aus
                      Das finde ich gut

                      Kommentar


                        #12
                        Recht so?
                        • Visuelement "Webseite/Bild-URL"
                          • URL-Typ "Webseite": standardmäßig wird ein Streifenmuster angezeigt, bis die Webseite geladen wurde und ggf. deren Hintergrund angezeigt wird
                          • dies kann nun optional deaktiviert werden, so dass während des Ladevorgangs (und ggf. auch nach dem Laden) kein Hintergrund angezeigt wird (transparent)
                        EDOMI - Intelligente Steuerung und Visualisierung KNX-basierter Elektro-Installationen (http://www.edomi.de)

                        Kommentar


                          #13
                          Vielen Dank, das ist perfekt

                          Kommentar


                            #14
                            Gern geschehen - kommt dann im nächsten Update (dauert aber noch ein wenig)...
                            EDOMI - Intelligente Steuerung und Visualisierung KNX-basierter Elektro-Installationen (http://www.edomi.de)

                            Kommentar

                            Lädt...
                            X