Seite 1 von 1

Webanwendung Handy oder Tablet herausfinden

Verfasst: 29.03.2023 16:37
von stevie1401
Is es bei einer Webanwendung mit Spider möglich herauszufinden, ob jemand an einem Handy oder einem Tablet spielt?

Re: Webanwendung Handy oder Tablet herausfinden

Verfasst: 29.03.2023 17:19
von Kiffi
Vielleicht hiermit:

Code: Alles auswählen

Procedure.s GetPlattform()
  ! return JSON.stringify(platform)
EndProcedure

Debug GetPlattform()
Bei mir (Windows-Desktop) kommt sowas raus:
{"description":"Chrome 111.0.0.0 on Windows 10 64-bit","layout":"Blink","manufacturer":null,"name":"Chrome","prerelease":null,"product":null,"ua":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36 Edg/111.0.1661.54","version":"111.0.0.0","os":{"architecture":64,"family":"Windows","version":"10"}}
Du müsstest mal schauen, was bei mobile Devices rauskommt.

Re: Webanwendung Handy oder Tablet herausfinden

Verfasst: 29.03.2023 20:18
von DarkDragon
Ansonsten gäbe es noch die Bildschirmmaße:

Math.min(screen.width, screen.height) / (window.devicePixelRatio * 96)

Alles unter 3 würde ich dort einfach als Smartphone ansehen. Aber einen offiziellen weg sowas zu erkennen ist mir nicht bekannt. Ich hatte mal ein ähnliches Problem: gibt's einen touch screen oder gibt es keinen?

Re: Webanwendung Handy oder Tablet herausfinden

Verfasst: 30.03.2023 08:29
von stevie1401
Vielen Dank für die Tips!
Die werden mir sicher weiterhelfen :)

Ich habe übrigens herausgefunden, dass bei GetPlattform() bei Tablets im String kein "mobile" zu finden ist. Bei Handys schon. Das ist doch schon mal was.

Code: Alles auswählen


Procedure  check_Device()
  
  Protected.s dn   ,plattform,pcflg
 
  plattform= GetPlattform()
 dn=DesktopName(0)
 dn=lcase(dn)
    
  If FindString(dn,"mobile")>0 Or FindString(dn,"android")>0 Or FindString(dn,"ipad")>0 Or FindString(dn,"ipod")>0
    If FindString(LCase(plattform),"mobile")>0
      PcFlg=3 ;Handy
    Else
      PcFlg=2  ;Tablet
    EndIf
  Else
    PcFlg=1
  EndIf
  
  procedurerturn pcflg
  
  
EndProcedure