Autore Topic: Webview e scripts  (Letto 516 volte)

Offline pastrank

  • Maestro Gambero
  • ****
  • Post: 266
    • Mostra profilo
Webview e scripts
« il: 11 Febbraio 2024, 16:47:47 »
Da qualche tempo, noto una limitazione nel webview che mi da' un po' fastidio. Uso questo componente in una applicazione che mi serve per trovare alcune tag per i miei file multimediali, e mi e' comodo usare discogs.com. Il fatto e' che, a causa di Gambas o del sito, parte della pagina e' dinamicamente composta, e non me la riporta nel controllo. Mostro un semplice esempio nell'immagine allegata: a sinistra la pagina (https://www.discogs.com/artist/1038288-King-Salami-The-Cumberland-Three) come e' visualizzata da Firefox, a destra come la monta il mio webview. Come si vede, barra sopra ma sopratutto la parte sotto non c'e'
Mi viene il dubbio che ci sia un qualche sistema veloce per ovviare a questa cosa, ma mi vengono in mente solo cose dalle complicazioni inversamente proporzionate al mio tempo libero :), e quindi provo a chiedere: nel frattempo, saluti a tutti  :ciao:

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.244
  • Tonno verde
    • Mostra profilo
Re:Webview e scripts
« Risposta #1 il: 11 Febbraio 2024, 17:34:49 »
Da qualche tempo, noto una limitazione nel webview che mi da' un po' fastidio. Uso questo componente in una applicazione che mi serve per trovare alcune tag per i miei file multimediali, e mi e' comodo usare discogs.com. Il fatto e' che, a causa di Gambas o del sito, parte della pagina e' dinamicamente composta, e non me la riporta nel controllo. Mostro un semplice esempio nell'immagine allegata: a sinistra la pagina (https://www.discogs.com/artist/1038288-King-Salami-The-Cumberland-Three) come e' visualizzata da Firefox, a destra come la monta il mio webview. Come si vede, barra sopra ma sopratutto la parte sotto non c'e'
Mi viene il dubbio che ci sia un qualche sistema veloce per ovviare a questa cosa, ma mi vengono in mente solo cose dalle complicazioni inversamente proporzionate al mio tempo libero :), e quindi provo a chiedere: nel frattempo, saluti a tutti  :ciao:

Ciao, è un po di tempo che non uso WebView, ci son stati dei cambiamenti ora QT usa gb.gui.qt.webkit mentre GTK usa gb.gui.webview.
Ho fatto una semplice prova con entrambi i componenti:
Codice: [Seleziona]
Public Sub Form_Open()

  WebView1.Url = "https://www.discogs.com/artist/1038288-King-Salami-The-Cumberland-Three"

End
e la pagina si è caricata correttamente (vedi immagine)
gb.gui.webview qui è più reattivo

 :ciao:
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.720
  • Ne mors quidem nos iunget
    • Mostra profilo
Re:Webview e scripts
« Risposta #2 il: 11 Febbraio 2024, 17:51:31 »
.... ci son stati dei cambiamenti ora QT usa gb.gui.qt.webkit mentre GTK usa gb.gui.webview.
E' un po' di tempo che invece a me, se imposto il Componente "gb.gui.qt.webkit", il Controllo WebView non è mostrato non è attivo.  :-\
Sono ormai sempre costretto a usare il Componente "gb.qt5.webview".
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline pastrank

  • Maestro Gambero
  • ****
  • Post: 266
    • Mostra profilo
Re:Webview e scripts
« Risposta #3 il: 11 Febbraio 2024, 18:19:00 »
e la pagina si è caricata correttamente (vedi immagine)
gb.gui.webview qui è più reattivo

In effetti funziona, e sembra anche molto piu' veloce: pero' il suo uso mi pone due problemi (uno probabilmente deriva dal fatto che gli script adesso li vede): a ogni uso mi chiede di approvare l'uso dei cookies, e non riesco a trovare un metodo per riconoscere dove sto cliccando (aprendo la pagina mi trovavo le copertine aperte, e con un menu contestuale  apparso al click sull'immagine, che riconoscevo cosi'
Codice: [Seleziona]
Sub wv_MouseDown()
Dim v As WebHitTest = wv.HitTest(Mouse.x, Mouse.y)

 If v.Image Then
     myhtml = v.Element.HTML
 Endif

End
(piu' la procedura di salvataggio ovviamente) potevo salvare direttamente l'immagine della copertina senza altre richieste, ).