[fully - android browser] text von handys/tablets versenden

Begonnen von the ratman, 10 Mai 2017, 10:32:30

Vorheriges Thema - Nächstes Thema

the ratman

hiho,

ich frage mich, ob das problem schon wer gelöst hat:
ich habe ein textfeld in einem doif, das den eingegebenen text an div. wlan-boxen versendet. das funzt soweit wunderbar.
allerdings passiert nach der texteingabe und dem absenden von nem androidhandy/tablet 0. das doif kriegt den text nicht mit.
teste ich das ganze vom pc aus und/oder per teamviewer ist das versenden kein problem.
irgendwie scheint mir da die android-tastatur (getestet mit orig. google, samsung und ner kauftastatur) schuld zu sein.

kennt das wer, gibts da ne lösung?

nachtrag:
ha! es liegt am browser - mit dem android-firefox gehts mit fully leider nicht
→do↑p!dnʇs↓shit←

aloz77

Bei allen Web-Problemen in Fully stellen sich die gleichen Fragen (da Fully hier eigentlich nur die Android Webview nutzt und kaum etwas beeinflussen kann):


  • Funktioniert es mit Chrome auf Android richtig? Wenn nein, soll man sich hier schon fragen warum und nach einem HTML/JS-Fix suchen.
  • Wenn ja, welche Android Version ist drauf? Mit Android 4.x wird man oft nicht glücklich, da die eingebaute Webview dort total veraltet, buggy und nicht aktualisierbar ist.
  • Bei Android 5 und 6: Ist Android System Webview installiert und auf dem aktuellen Stand?

the ratman

alle geräte am neuesten stand, keines unter android 5 - alle bis auf 1 tablet originale os.
webview natürlich auch aktuell

fully --> geht nicht
crome --> geht nicht
firefox --> geht

gut, firefox bringt ja ne eig. engine mit, somit wirds wohl am webview liegen, nehm ich mal aufgrund deiner infos an.
sehr ärgerlich ...
→do↑p!dnʇs↓shit←

aloz77

Dann ist das Bild eindeutig. Der HTML/JS-Code ist nicht mit Chromium, wie es in Webview und in Chrome zum Einsatz kommt, kompatibel. Frag die Entwickler des Moduls, ob sie das nicht fixen wollen.

the ratman

o.k.
das wäre in dem fall dann wohl damian mit seinem doif.
der arme verflucht mich sicher schon *g*
→do↑p!dnʇs↓shit←

Per

Zitat von: aloz77 am 11 Mai 2017, 19:43:48Der HTML/JS-Code ist nicht mit Chromium [...] kompatibel.
Zitat von: the ratman am 11 Mai 2017, 19:50:36das wäre in dem fall dann wohl damian mit seinem doif.
DOIF ist Perl, nix HTML/JS. Da hast du wohl das falsche Modul erwischt.

rudolfkoenig

Was genau heisst:
Zitatdas den eingegebenen text an div. wlan-boxen versendet.
Kannst du das bitte genauer beschreiben _und_ die Stelle auf einem Screenshot zeigen?

the ratman

ich poste mal los:

das ist mal das (funktionierende) doif:Internals:
   DEF        ([Durchsage_miniLaerm:Text] ne "eingeben")

(
setreading Durchsage_Container cstate [DLNA_d5a619f4804c:state];
setreading Durchsage_Container stream [DLNA_d5a619f4804c:stream];
set DLNA_d5a619f4804c speak "[Durchsage_miniLaerm:Text]"
)
(
IF ([Durchsage_Container:cstate] eq "playing") (set DLNA_d5a619f4804c stream [Durchsage_Container:stream]) ELSE (set DLNA_d5a619f4804c stop);
setreading Durchsage_miniLaerm Text eingeben;
)

DOELSE
   NAME       Durchsage_miniLaerm
   NR         261
   NTFY_ORDER 50-Durchsage_miniLaerm
   STATE      cmd_1
   TYPE       DOIF
   Readings:
     2017-05-12 11:06:30   Device          Durchsage_miniLaerm
     2017-05-12 11:06:45   Text            eingeben
     2017-05-12 11:06:45   cmd             1.2
     2017-05-12 11:06:45   cmd_event       Durchsage_miniLaerm
     2017-05-12 11:06:45   cmd_nr          1
     2017-05-12 11:06:45   cmd_seqnr       2
     2017-05-12 11:06:30   e_Durchsage_miniLaerm_Text achtung hausinformation - die temperatur im treibhaus stieg ueber 35 grad
     2017-05-12 11:06:45   state           cmd_1
     2017-05-05 11:58:25   text            eingeben
     2017-05-12 11:06:45   wait_timer      no timer
   Condition:
     0          ReadingValDoIf($hash,'Durchsage_miniLaerm','Text') ne "eingeben"
   Devices:
     0           Durchsage_miniLaerm
     all         Durchsage_miniLaerm
   Do:
     0:
       0           setreading Durchsage_Container cstate [DLNA_d5a619f4804c:state]; setreading Durchsage_Container stream [DLNA_d5a619f4804c:stream]; set DLNA_d5a619f4804c speak "[Durchsage_miniLaerm:Text]"
       1           IF ([Durchsage_Container:cstate] eq "playing") (set DLNA_d5a619f4804c stream [Durchsage_Container:stream]) ELSE (set DLNA_d5a619f4804c stop); setreading Durchsage_miniLaerm Text eingeben;
     1:
       0
   Helper:
     event      Text: achtung hausinformation - die temperatur im treibhaus stieg ueber 35 grad,Device: Durchsage_miniLaerm,e_Durchsage_miniLaerm_Text: achtung hausinformation - die temperatur im treibhaus stieg ueber 35 grad
     globalinit 1
     last_timer 0
     sleepdevice Durchsage_miniLaerm
     sleepsubtimer -1
     sleeptimer -1
     timerdev   Durchsage_miniLaerm
     timerevent Text: achtung hausinformation - die temperatur im treibhaus stieg ueber 35 grad,Device: Durchsage_miniLaerm,e_Durchsage_miniLaerm_Text: achtung hausinformation - die temperatur im treibhaus stieg ueber 35 grad
     triggerDev Durchsage_miniLaerm
     timerevents:
       Text: achtung hausinformation - die temperatur im treibhaus stieg ueber 35 grad
       Device: Durchsage_miniLaerm
       e_Durchsage_miniLaerm_Text: achtung hausinformation - die temperatur im treibhaus stieg ueber 35 grad
       cmd_nr: 1
       cmd_seqnr: 1
       cmd: 1.1
       cmd_event: Durchsage_miniLaerm
       cmd_1_1
       wait_timer: 12.05.2017 11:06:45 cmd_1_2 Durchsage_miniLaerm
     timereventsState:
       Text: achtung hausinformation - die temperatur im treibhaus stieg ueber 35 grad
       Device: Durchsage_miniLaerm
       e_Durchsage_miniLaerm_Text: achtung hausinformation - die temperatur im treibhaus stieg ueber 35 grad
       cmd_nr: 1
       cmd_seqnr: 1
       cmd: 1.1
       cmd_event: Durchsage_miniLaerm
       cmd_1_1
       wait_timer: 12.05.2017 11:06:45 cmd_1_2 Durchsage_miniLaerm
     triggerEvents:
       Text: achtung hausinformation - die temperatur im treibhaus stieg ueber 35 grad
       Device: Durchsage_miniLaerm
       e_Durchsage_miniLaerm_Text: achtung hausinformation - die temperatur im treibhaus stieg ueber 35 grad
       cmd_nr: 1
       cmd_seqnr: 1
       cmd: 1.1
       cmd_event: Durchsage_miniLaerm
       cmd_1_1
       wait_timer: 12.05.2017 11:06:45 cmd_1_2 Durchsage_miniLaerm
     triggerEventsState:
       Text: achtung hausinformation - die temperatur im treibhaus stieg ueber 35 grad
       Device: Durchsage_miniLaerm
       e_Durchsage_miniLaerm_Text: achtung hausinformation - die temperatur im treibhaus stieg ueber 35 grad
       cmd_nr: 1
       cmd_seqnr: 1
       cmd: 1.1
       cmd_event: Durchsage_miniLaerm
       cmd_1_1
       wait_timer: 12.05.2017 11:06:45 cmd_1_2 Durchsage_miniLaerm
   Internals:
   Itimer:
   Readings:
     0           Durchsage_miniLaerm:Text
     all         Durchsage_miniLaerm:Text
   Regexp:
     0:
     All:
   State:
     State:
   Trigger:
Attributes:
   DbLogExclude .*
   do         always
   fp_Quer    596,1207,7,Durchsage_miniLaerm,
   fp_ratPlan_Handy2 1701,10,7,Durchsage_miniLaerm,
   group      Helferchen
   icon       helper_doif
   readingList Text
   room       MultiMedia
   setList    Text:textField
   wait       0,15
   webCmd     Text
es gibt also einfach ein textfeld, dass in dem fall wie im anhang aussieht. dieses textfeld funzt auch wunderbar auch am floorplan - nur halt nicht unter android mit meinem geliebten fully browser und, wie getestet, auch nicht unter crome. generell gehts aber auch unter android - weil der firefox gibt brav den eingegeben text weiter.
was dann passiert ist simpel: das doif schaut, was gerade am laufen ist, speichert ein paar parameter in nen dummy, spielt den text als tts an die gewünschte box und stellt dann wieder per dummy den alten zustand in meinen wlan-boxen her.
was das problem angeht: aloz77 wird sicher recht haben, dass googles webview sch(uld/eiße) ist.
→do↑p!dnʇs↓shit←

aloz77

Zitat von: Per am 12 Mai 2017, 11:44:25
DOIF ist Perl, nix HTML/JS. Da hast du wohl das falsche Modul erwischt.

Mag sein, dass DOIF Perl ist. Nur Perl an sich verursacht keine solchen Browser-Inkompatibilitäten. Das tut meistens HTML/JS, welches von irgendwo generiert kommt.

aloz77

Zitat von: the ratman am 12 Mai 2017, 12:19:59
was das problem angeht: aloz77 wird sicher recht haben, dass googles webview sch(uld/eiße) ist.

Das würde ich nicht unterschreiben. Blink/Chromium ist eine schnelle und solide Webengine. Probleme solcher Art, dass irgendwas in Firefox funktioniert und in Chrome oder Android Webview nicht, sind eher sehr selten bei gepflegten Webseiten.

Per

Zitat von: aloz77 am 12 Mai 2017, 21:19:13
Mag sein, dass DOIF Perl ist. Nur Perl an sich verursacht keine solchen Browser-Inkompatibilitäten. Das tut meistens HTML/JS, welches von irgendwo generiert kommt.
Eben.

the ratman

→do↑p!dnʇs↓shit←

fiedel

Wenn ich an solche Grenzen stoße (meistens eher vorher) fange ich an zu experimentieren: DOIF nutze ich not at all  ;) also entweder mal mit Notify, Dummy usw. das Ganze neu aufbauen, oder das Absetzten der Nachrichten direkt aus der Befehlszeile heraus (ohne Logik) versuchen. Am Ende solltest du herausbekommen haben, an welcher Übergabestelle es genau hängt. Dann hast du entweder die Lösung schon selbst gefunden, oder weißt nun genau wen du rattig machen musst...  ;D
FeatureLevel: 6.1 auf Wyse N03D ; Deb. 11 ; Perl: v5.14.2 ; IO: HM-MOD-RPI-PCB + VCCU|CUL 868 V 1.66|LinkUSBi |TEK603
HM: SEC-SCO|SCI-3-FM|LC-SW4-PCB|ES-PMSW1-PL|RC-4-2|SEN-MDIR-O|SEC-WDS-2
CUL: HMS100TF|FS20 S4A-2 ; OWDevice: DS18S20|DS2401|DS2406|DS2423

the ratman

ja, da soße ich an meine grenzen *g*

dummy ist das selbe problem - ich würd also mal sagen: problem nr. 1: textfeld (in egal was) in verbindung mit fully und anderen browsern, die webview nutzen.
das doif hatte ich auch schon mal rausgenommen, wäre aber egal, weil ohne das ganze wenig sinn macht. ich nutze das auch für automatisierte durchsagen und der WAF sagt: wenn nach z.b. durchsagen nicht wieder genau ihre musik kommt, ist der beitragsersteller in großer todesgefahr *g*.

schuld wäre in meinen augen also google - ich glaube aber, die hören eher auf nen sack reis, als mich.
drum hoffte ich eig. auch auf den ersteller von fully, vor allem schon deswegen, weil der mann sich als extrem flott und einfallsreich erwiesen hat, wenns um probleme ging ...
→do↑p!dnʇs↓shit←

rudolfkoenig

Zitatja, da soße ich an meine grenzen *g*
Ich habe auch keine Soße, wie ich das loesen soll.

Uebrigens ist auch der "normale" Chrome davon betroffen. Das <input> Tag wird bei einem textField von fhemweb-eigenen JavaScript generiert, es sitzt in einem <form>, fuer mich schaut alles richtig aus.
Ich habe die Vermutung, dass WebKit das Return in einem dynamisch erzeugten <input> innerhalb eines Forms nicht beruecksichtigt. Falls jemand eine Idee fuer eine Loesung hat, her damit.

the ratman

könnte man die soße nicht zum probieren mal mit nem sende-button versehen, sobald ein bestimmter browser erkannt wird?
also so richtig oldschool ... dann könnts ja nur mehr am javascript liegen, sollte das funzen.
→do↑p!dnʇs↓shit←

aloz77

Zitat von: the ratman am 13 Mai 2017, 10:22:59
drum hoffte ich eig. auch auf den ersteller von fully, vor allem schon deswegen, weil der mann sich als extrem flott und einfallsreich erwiesen hat, wenns um probleme ging ...

Da muss ich leider enttäuschen. Solche Sachen sind in der Webview vergraben, da hat Fully nichts zu sagen.