Italian Progetto B4XPage esistente + pagina di login

Pesciolina

Active Member
Licensed User
Longtime User
Buon giorno e buon anno a tutti quanti.

Ho una mia App già funzionante alla quale vorrei inserire una pagina di login per l'autentificazione.
Attualmente l'App all'avvio mostra una finestra di splash utilizzando un modulo Activity2 e nella
B4xMain B4XPage_Created (Root1 As B4XView) c'è questo comando di attesa Wait For (ShowSplashScreen) Complete (Unused As Boolean).

Ho provato a creare un modulo B4XLogin che richiamo dalla MainPage ma nella pagina mi compare la freccia per tornare indietro e
anche il pulsante del telefono per tornare indietro è abilitato.

B4X:
Wait For (ShowSplashScreen) Complete (Unused As Boolean)
' Crea la pagina di Login
    PageLogin.Initialize
    B4XPages.AddPage("PageLogin", PageLogin)

    ' Mostra inizialmente la pagina di Login
    B4XPages.ShowPage("PageLogin")

nella pagina di login per ora ho messo solo la chiamata per la Main
B4X:
    B4XPages.ShowPageAndRemovePreviousPages("MainPage")

leggendo nel forum ho trovato che per non visualizzare la freccia indietro devo creare un titolo vuoto, ma non sembra funzionare (B4XPages.SetTitle(Me, ""))

Come posso non mostrare la freccia indietro e bloccare il pulsante indietro dalla pagina di login ?

Grazie per i vostri suggerimenti
Marco
 

LucaMs

Expert
Licensed User
Longtime User
Per evitare la visualizzazione della freccia, dovresti aprire anche la pagina di login usando ShowPageAdRemovePreviousPages.
Per evitare l'uscita tramite tasti:
B4X:
Private Sub B4XPage_CloseRequest As ResumableSub
    Return False
End Sub
 
Last edited:

Pesciolina

Active Member
Licensed User
Longtime User
grazie, funziona correttamente per la pagina Login

Ora da login apro un'altra pagina con B4XPages.ShowPage("PageSettore") e se da questa premo freccia indietro o tasto cell indietro va in errore

B4X:
*** pagesettore: B4XPage_Appear [pagelogin]
*** pagesettore: B4XPage_CloseRequest [pagelogin, pagesettore]
Error occurred on line: 540 (B4XPagesManager)
java.lang.reflect.InvocationTargetException
    at java.lang.reflect.Method.invoke(Native Method)
    at anywheresoftware.b4a.keywords.Common.CallSubDebug(Common.java:1082)
    at B4A.SendPen.b4xpagesmanager$ResumableSub_HandleCloseRequest.resume(b4xpagesmanager.java:867)
    at B4A.SendPen.b4xpagesmanager._handlecloserequest(b4xpagesmanager.java:834)
    at B4A.SendPen.b4xpagesmanager._activity_keypress(b4xpagesmanager.java:664)
    at B4A.SendPen.b4xpagesdelegator._activity_keypress(b4xpagesdelegator.java:53)
    at B4A.SendPen.activity2._activity_keypress(activity2.java:461)
    at java.lang.reflect.Method.invoke(Native Method)
    at anywheresoftware.b4a.shell.Shell.runMethod(Shell.java:732)
    at anywheresoftware.b4a.shell.Shell.raiseEventImpl(Shell.java:351)
    at anywheresoftware.b4a.shell.Shell.raiseEvent(Shell.java:255)
    at java.lang.reflect.Method.invoke(Native Method)
    at anywheresoftware.b4a.ShellBA.raiseEvent2(ShellBA.java:157)
    at B4A.SendPen.activity2$HandleKeyDelayed.runDirectly(activity2.java:231)
    at B4A.SendPen.activity2$HandleKeyDelayed.run(activity2.java:228)
    at android.os.Handler.handleCallback(Handler.java:942)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    at android.os.Looper.loopOnce(Looper.java:201)
    at android.os.Looper.loop(Looper.java:288)
    at android.app.ActivityThread.main(ActivityThread.java:7937)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:569)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1019)
Caused by: java.lang.RuntimeException: java.lang.Exception: Sub B4XPage_CloseRequest was not found.
    at anywheresoftware.b4a.debug.Debug.CallSub4(Debug.java:336)
    at anywheresoftware.b4a.debug.Debug.CallSubNew(Debug.java:282)
    ... 23 more
Caused by: java.lang.Exception: Sub B4XPage_CloseRequest was not found.
    at anywheresoftware.b4a.debug.Debug.CallSub4(Debug.java:326)
    ... 24 more

nella linea 540
1736028917039.png


invece se dalla pagina eseguo un comando lo esegue e torna alla MainPage correttamente.
 

LucaMs

Expert
Licensed User
Longtime User
https://www.b4x.com/android/forum/t...o-tutto-il-progetto-da-b4a.129467/post-814985


"Trucco" per trovare soluzioni ad errori: prendere una parte importante del messaggio d'errore e cercarla tramite Google, premettendo: site:b4x.com -"Search Results".
Il -"Search Results" serve ad evitare che cerchi nelle pagine dei risultati delle ricerche interne al sito, non sarebbe utile.

In questo caso, fargli cercare _handlecloserequest(b4xpagesmanager.java:

https://www.google.com/search?q=sit...mAIAoAIAmAMAiAYBkgcAoAda&sclient=gws-wiz-serp
 
Last edited:

Pesciolina

Active Member
Licensed User
Longtime User
grazie, eppure il comando pulisci progetto per abitudine lo uso spesso.

Ora in questo progetto il comportamento della pagina login è corretto, nell'altro che sto facendo la stessa modifica si comporta in un modo anomalo, visualizza la pagina di Login e poi ritorna a visualizzare la Main e nella stessa mette la freccia indietro che apre la Login, l'unica differenza tra i due che in questo non visualizzo la pagina splash.

Da cosa può dipendere ?
 
Top