Texteingabe beim Smartphone funktioniert nicht
Verfasst: 27.12.2019 09:50
Bei folgendem Code klappt die Texteingabe mit Smartphones nicht. Oder zumindest sehr oft nicht.
Immer, wenn man auf das Eingabefeld klickt, geht kurz die Handytastatur an, verschwindet aber sofort wieder.
Es würde dann immer funktionieren, wenn die Texteingabebox über der Handytastatur ist, aber das ist natürlich etwas ungünstig.
Was mache ich falsch?
Testen könnt ihr es hier:
http://www.doko-lounge.de/chattest.html
Und hier der Code:
Immer, wenn man auf das Eingabefeld klickt, geht kurz die Handytastatur an, verschwindet aber sofort wieder.
Es würde dann immer funktionieren, wenn die Texteingabebox über der Handytastatur ist, aber das ist natürlich etwas ungünstig.
Was mache ich falsch?
Testen könnt ihr es hier:
http://www.doko-lounge.de/chattest.html
Und hier der Code:
Code: Alles auswählen
EnableExplicit
Global xres,yres,browser.s,smartphoneflg
Declare.s GetBrowserName()
Declare DesktopFeststellen()
Declare Eingabefenster()
Enumeration
#testwindow
#chatbox
#chateingabe
#chatsendenbutton
EndEnumeration
browser=GetBrowserName()
Debug browser
If FindString(LCase(browser),"mobile")>0
smartphoneflg=1
EndIf
DesktopFeststellen()
Eingabefenster()
Procedure.s GetBrowserName()
! return platform.name;
EndProcedure
Procedure DesktopFeststellen()
Protected width,height,wd ,teiler.f,zoom
Protected.s browser
!document.body.style.zoom = 1 / window.devicePixelRatio * 100 + "%"
!v_width=document.body.clientWidth;
!v_height=document.body.clientHeight;
!v_r=window.devicePixelRatio
Teiler=height/400
If smartphoneflg=1 ;Smartphone
If teiler>1
!document.body.style.zoom = v_teiler / window.devicePixelRatio * 100 + "%"
Else
!document.body.style.zoom = 1 / window.devicePixelRatio * 100 + "%"
EndIf
!v_width=document.body.clientWidth;
!v_height=document.body.clientHeight;
EndIf
xres=width
yres=height
EndProcedure
Procedure Eingabefenster()
Protected ChatHeight,c,ChatBreite,x,y,w,h
OpenWindow(#TestWindow, 0, 0, xres,yres, "",#PB_Window_BorderLess)
AddKeyboardShortcut(#TestWindow, #PB_Shortcut_Return, 2)
chatbreite=200
chatheight=yres-200
x=10
y=10
TextGadget(#chatbox,x,y,ChatBreite,chatheight,"",#PB_Text_Border)
x=GadgetX(#chatbox)
y=GadgetY(#chatbox)+GadgetHeight(#chatbox)+20
y=GadgetY(#chatbox): h=GadgetHeight(#chatbox)
;Chateingabe
StringGadget(#ChatEingabe, x, y+chatheight+10, GadgetWidth(#chatbox)-80, 30, "")
x=GadgetX(#ChatEingabe)+GadgetWidth(#ChatEingabe)+5
y=GadgetY(#ChatEingabe)
ButtonGadget(#ChatSendenButton,x,y,60,30,"Senden")
EndProcedure