NEWS
Kann man eine App in VIS einbauen?
-
Mal ne blöde Frage von einem Ahnungslosen:
Wäre es möglich, dass man aus VIS eine Android App startet und diese quasi wie in einem IFrame in Vis direkt laufen lässt? Also im Prinzip wie bei einem Active-X Plugin unter WIndows.
Ich würde dann zum Steuern der HiFi Anlage die entsprechende Steuer App in VIS einbinden wollen.
Geht sowas?
Wahrscheinlich nicht oder?
Gruss Ralf -
@derrapf für spotify kenne/habe ich sowas, gibt irgendwo nen Thread dazu,
finde ihn aber grad nicht
ein html widget, damit wird spotify direkt aufgerufen
Vorraussetzung ist allerdings, das der Fully Browser genutzt wirdhtml:
<span onclick="vis.setValue('fully-tablet-control.0.device.hd10firewz.commands.startApplication', 'com.spotify.music')">xxxxxxx xxxxxxx xxxxxxx xxxxxxx xxxxxxx xxxxxxx</span>
-
@crunchip sagte in Kann man eine App in VIS einbauen?:
<span onclick="vis.setValue('fully-tablet-control.0.device.hd10firewz.commands.startApplication', 'com.spotify.music')">xxxxxxx xxxxxxx xxxxxxx xxxxxxx xxxxxxx xxxxxxx</span>
Danke. So wie oben mit dem html Widget geht es nicht (also bei mir). Aber wenn ich es wie im verlinkten Thread mache, dann funktioniert es.
Zwar nicht inplace,aber das ist egal. Das ist echt super.Danke
Gruss Ralf
-
@derrapf
Nee, das Widget geht doch. War mein Fehler.
Ich habe zwei Tablets und hatte das Falsche gewählt.Und da kommt auch gleich mein nächstes Problem:
Wie sorge ich dafür, dass der Button auf beiden Tablets funktioniert?
Ich müsste in dem Ausdruck<span onclick="vis.setValue('fullybrowser.0.192_168_111_79.Commands.startApplication', 'com.dmholdings.denonremoteapp')">DENON REMOTE</span>
oder auch im Java-Script
zwischen "fullybrowser.0" und .Commands dynamisch die richtige IP bzw. den Namen des Tablets einsetzen.
Gruss Ralf
-
@derrapf ich nutze nicht den fullybrowser, bei mir läuft fully-tablet-control
bleibt unterm Stich aber das Gleiche, weil sich der Link auf ein Device beziehtkeine Ahnung wie man das Lösen könnte, eventuell ne separate View beim zweiten Tablet
-
@derrapf
Geht evtl mit einem dp, den du setzt, indem du das Gerät auswählst. Z.b selectlist widgetDann ein Script, welches den Widget Inhalt erzeugt/setzt - im HTML Widget selbst nutzt du ein Binding des neuen Datenpunktes
Du schreibst den Inhalt des HTML Widgets in einem dp und das Binding macht den rest
Einen Werteliste dp für die Auswahl
Einen String dp , dessen Inhalt anhand der Werteliste geschrieben wird -
@derrapf sagte in Kann man eine App in VIS einbauen?:
<span onclick="vis.setValue('fullybrowser.0.192_168_111_79.Commands.startApplication', 'com.dmholdings.denonremoteapp')">DENON REMOTE</span>
mit einem widget von inventwo geht das ohne script - direkt eintragen
ps: evtl brauchst du das html widget nicht - du kannst sofort die zu öffnende app ins widget eintragen
-
was auch noch ginge: ein jQuery script mit abfrage der vis instance - damit kannst du den browser unterscheiden. je nach browser wird dann eine andere ip eingetragen
dabei braucht es kein auswahlwidget mehr
hier ein filmchen mit 2 tablets - selbe view - unterschiedliche apps werden geöffnet
das script ist nicht fertig - da ist ein timeout drin - das muss anders gelöst werden
wird in script tab im vis editor eingesetzt - das muss aber auch für dich angeglichen werden - vis-instance id' und die widget id'ssetTimeout(function () { console.log(vis.instance); var woBinIch=vis.instance; /* TREKSTORE13*/ if(woBinIch=="09.60f3e"){ $( "div#w00023" ).contents().find( "span" ).attr({"onclick":"vis.setValue('fullybrowser.0.192_168_178_29.Commands.startApplication', 'com.android.browser')"}); } /* GALAXY*/ if(woBinIch=="b9.1846b"){ $( "div#w00023" ).contents().find( "span" ).attr({"onclick":"vis.setValue('fullybrowser.0.192_168_178_44.Commands.startApplication', 'com.wooga.jelly_splash')"}); } /* CHROME-PC*/ if(woBinIch=="1a.c6ce7"){ $( "#w00030" ).text( 'MusicFolderPlayer Test1'); console.log($( "div#w00023" ).contents().find( "span" ).text()) /* $( "div#w00023" ).contents().find( "span" ).attr({"onclick":`vis.setValue('fullybrowser.0.192_168_178_29.Commands.startApplication', 'com.android.browser')`});*/ $( "#w00023" ).text( 'CHROME PC'); } } , 10000);
-
@liv-in-sky
Sorry, dass ich jetzt erst antworte, aber ich habe keine Mail bekommen, dass in dem Thread noch Antworten waren und so ging das verschütt.
Ich habe das jetzt pragmatisch dadurch gelöst, dass ich die App einfach bei Tastendruck auf allen Tabs öffne. Ist ja im Grunde egal, ich steh' ja nur vor einem.
Deine Lösung würde ich gerne ausprobieren.
Ich hab nur den Satz nicht verstanden "ein jQuery script mit abfrage der vis instance"
Was ist ein jQuery Script und wie schfeibt man das? Oder anders: Wo bekomme ich diese vis-Instanz her?Gruss Ralf
-
das ist lange her - mittlerweile weiß ich, dass sich die browser instance ändern kann - z.b. wenn du den cache löscht
daher wird mittlerweile mit dem port des web adapters gearbeitet. es werden für jedes tablet eine eigene web adapter instanz mit verschiedenen port einstellungen erstellt und dann wird der port in der vis ermittelt und reagiert
siehe beispiel: https://forum.iobroker.net/post/735179
mit jquery (ist in der vis implementiert) kann man alle objecte in einer html seite lesen und ändern
$( "div#w00023" ).contents().find( "span" ).attr({"onclick":"vis.setValue('fullybrowser.0.192_168_178_44.Commands.startApplication', 'com.wooga.jelly_splash')"});
findet in dem widget #w00023 den content span und ändert das attribut setting wenn es angeklickt wird
-
Ihr könnt euch auch noch die App Automagic ansehen. Hier kann man auch links erstellen, die eine App öffnen soll