PDA

View Full Version : peMode - Problem



Hook
13-May-2020, 08:04 AM
Ich habe in der Webapp.src folgende Ausgabe in der OnOrientationChange und OnLoad...



Procedure OnOrientationChange Integer iOrientation
Forward Send OnOrientationChange iOrientation

Integer eMode

WebGet peMode of ghoWebApp to eMode

If (eMode = rmDesktop) Send ShowInfoBox "Desktop" ""
If (eMode = rmMobileLandscape) Send ShowInfoBox "Quer" "Handy"
If (eMode = rmMobilePortrait) Send ShowInfoBox "Hoch" "Handy"
If (eMode = rmTabletLandscape) Send ShowInfoBox "Quer" "Tablet"
If (eMode = rmTabletPortrait) Send ShowInfoBox "Hoch" "Tablet"

If ((eMode = rmDesktop) or (eMode = rmMobileLandscape) or (eMode = rmMobileLandscape)) Begin
Send OnShow of oMeineView
End
else Begin
Send OnShow of oMeineView
End
End_Procedure //OnOrientationChange

Procedure OnLoad
Integer eMode

WebGet peMode of ghoWebApp to eMode

If (eMode = rmDesktop) Send ShowInfoBox "Desktop" ""
If (eMode = rmMobileLandscape) Send ShowInfoBox "Quer" "Handy"
If (eMode = rmMobilePortrait) Send ShowInfoBox "Hoch" "Handy"
If (eMode = rmTabletLandscape) Send ShowInfoBox "Quer" "Tablet"
If (eMode = rmTabletPortrait) Send ShowInfoBox "Hoch" "Tablet"



Forward Send OnLoad
End_Procedure //OnLoad



... und die selben Zeilen in der OnShow meiner View



//oMeineView is a....
// Set pbServerOnShow to True
// ...


Procedure OnShow
Integer eMode //Modus, was für ein Gerätetyp

//Gerätetyp und Ausrichtung holen
WebGet peMode of ghoWebApp to eMode

If (eMode = rmDesktop) Send ShowInfoBox "Desktop" ""
If (eMode = rmMobileLandscape) Send ShowInfoBox "Quer" "Handy"
If (eMode = rmMobilePortrait) Send ShowInfoBox "Hoch" "Handy"
If (eMode = rmTabletLandscape) Send ShowInfoBox "Quer" "Tablet"
If (eMode = rmTabletPortrait) Send ShowInfoBox "Hoch" "Tablet"

Forward Send OnShow
End_Procedure //OnShow


Nun tritt folgendes Verhalten beim Handy und Tablet auf:

Aufruf der Webapp im Browser - Handy/Tablet Hochformat --> Infobox: Handy bzw Tablet Hoch --> 1.Aufruf der View --> Infobox: Handy bzw Tablet Hoch //bis hier stimmt alles, aber nun ...
Ich drehe das Gerät ins Querformat --> Infobox: Handy bzw Tablet Hoch --> Ich drehe das Gerät zurück ins Hochformat --> Infobox: Handy bzw Tablet Quer

Es ist unerklärlich für mich wieso peMode of ghoWebApp ab diesem Zeitpunkt immer die falsche Ausrichtung zurückgibt.

GhostShotIV
13-May-2020, 09:03 AM
Ich würde vermuten, dass die Richtungsänderung erst nach dem OnShow der View passiert und somit die alte Ausrichtung bei peMode abgefragt wird.

In den seltensten fällen muss man auch wirklich die Orientierung mit peMode abfragen, sondern kann dafür WebSetResponsive (https://docs.dataaccess.com/dataflexhelp/mergedProjects/LanguageReference/WebSetResponsive.htm) verwenden.

Was du dir auch noch ansehen könntest zu dem Thema wäre die OnOrientationChange (https://docs.dataaccess.com/dataflexhelp/mergedProjects/VDFClassRef/cWebApp-Event-OnOrientationChange.htm). In der sollte eigentlich immer die richtige Ausrichtung ermittelbar sein.