Buongiorno,
Ho postato nel forum italiano ma forse questa è la sezione più corretta
Ho una barra con diversi pulsanti uno carica sul componete WebView la pagina principale
uno torna indietro alla pagina precedente
mentre uno dovrebbe refresh della pagina corrente partendo dal top
Un pò di tempo in b4i scrivevo
	
	
	
	
	
	
	
		
			
			
			
			
			
		
	
	
	
		
	
	
		
	
 
La soluzione in b4a funziona in b4i non funziona più
Mi è stato suggerito questo
	
	
	
	
	
	
	
		
			
			
			
			
			
		
	
	
	
		
	
	
		
	
	
	
	
	
	
	
	
		
			
			
			
			
			
		
	
	
	
		
	
	
		
	
Inserendo
	
	
	
	
	
	
	
		
			
			
			
			
			
		
	
	
	
		
	
	
		
	
Ma continua a caricarmi nel punto dove sono e non al top
Cercando in rete
Il problema potrei risolverlo ricavandomi il nome della pagina per poi ricaricarlo
tipo
	
	
	
	
	
	
	
		
			
			
			
			
			
		
	
	
	
		
	
	
		
	
Il problema che la proprietà Url del controllo WebView non esiste in b4i
quindi il mio problema come faccio a ricavarmi in b4i il non della pagina corrente per poi fare un LoadUr
In html il nome della pagina viene letto in questo modo
	
	
	
	
	
	
	
		
			
			
			
			
			
		
	
	
	
		
	
	
		
	
quindi in teoria dovrei scrivere una cosa del tipo
	
	
	
	
	
	
	
		
			
			
			
			
			
		
	
	
	
		
	
	
		
	
Dove la funzione restituisce il nome della pagina
Quindi dovrei modificare questa funzione in modo da restituirmi il nome della pagina ma che modifiche devo apportare?
	
	
	
	
	
	
	
		
			
			
			
			
			
		
	
	
	
		
	
	
		
	
sicuramente deve restituire una stringa quindi
	
	
	
	
	
	
	
		
			
			
			
			
			
		
	
	
	
		
	
	
		
	
Mi aiutate?
Grazie mille
			
			Ho postato nel forum italiano ma forse questa è la sezione più corretta
Ho una barra con diversi pulsanti uno carica sul componete WebView la pagina principale
uno torna indietro alla pagina precedente
mentre uno dovrebbe refresh della pagina corrente partendo dal top
Un pò di tempo in b4i scrivevo
			
				B4X:
			
		
		
		Sub Class_Globals
    Private Root As B4XView
    Private xui As XUI
    Private paginaweb As WebView
    
    Public paginacaricata As String
    
    
    
End Sub
sub refresh_Click
   #If B4a
    paginacaricata= paginaweb.Url
    paginaweb.LoadUrl(paginacaricata)
     #else B4i
'    Dim no As NativeObject= paginaweb
'    no.RunMethod("stringByEvaluatingJavaScriptFromString:", Array("window.location.reload();"))
    #end ifLa soluzione in b4a funziona in b4i non funziona più
Mi è stato suggerito questo
			
				B4X:
			
		
		
		dim nome = RunJavaScript("window.location.href;")
			
				B4X:
			
		
		
		Private Sub RunJavaScript (js As String) As ResumableSub
    #if B4A
    WebViewExtras1.executeJavascript(WebView1, $"B4A.CallSub('Process_HTML', true, ${js})"$)
    Wait For Process_Html(html As String)
    Return html
    #Else If B4J
    Return WebView1.As(JavaObject).RunMethodJO("getEngine", Null).RunMethod("executeScript", Array(js))
    #Else If B4i
    Dim sf As Object = paginaweb.EvaluateJavaScript(js)
    Dim valore  As String
    sf= paginaweb.Top
    Wait For (sf) WebView1_JSComplete (Success As Boolean, Result As String)
    sf= paginaweb.Top
    valore = Result
    Log (valore)
    Return Result
    #end if
End SubInserendo
			
				B4X:
			
		
		
		 sf= paginaweb.TopMa continua a caricarmi nel punto dove sono e non al top
Cercando in rete
Il problema potrei risolverlo ricavandomi il nome della pagina per poi ricaricarlo
tipo
			
				B4X:
			
		
		
		'    paginacaricata= paginaweb.Url
'    paginaweb.LoadUrl(paginacaricata)Il problema che la proprietà Url del controllo WebView non esiste in b4i
quindi il mio problema come faccio a ricavarmi in b4i il non della pagina corrente per poi fare un LoadUr
In html il nome della pagina viene letto in questo modo
			
				HTML:
			
		
		
		<!DOCTYPE html>
<html>
<body>
<h1>The Window Location Object</h1>
<h2>The href Property</h2>
<p id="demo"></p>
<script>
let url = location.href;
document.getElementById("demo").innerHTML = url;
</script>
</body>
</html>quindi in teoria dovrei scrivere una cosa del tipo
			
				B4X:
			
		
		
		dim nome as string = RunJavaScript("window.location.href();")Dove la funzione restituisce il nome della pagina
Quindi dovrei modificare questa funzione in modo da restituirmi il nome della pagina ma che modifiche devo apportare?
			
				B4X:
			
		
		
		Private Sub RunJavaScript (js As String) As ResumableSub
    #if B4A
    WebViewExtras1.executeJavascript(WebView1, $"B4A.CallSub('Process_HTML', true, ${js})"$)
    Wait For Process_Html(html As String)
    Return html
    #Else If B4J
    Return WebView1.As(JavaObject).RunMethodJO("getEngine", Null).RunMethod("executeScript", Array(js))
    #Else If B4i
    Dim sf As Object = paginaweb.EvaluateJavaScript(js)
    Dim valore  As String
    sf= paginaweb.Top
    Wait For (sf) WebView1_JSComplete (Success As Boolean, Result As String)
    sf= paginaweb.Top
    valore = Result
    Log (valore)
    Return Result
    #end if
End Subsicuramente deve restituire una stringa quindi
			
				B4X:
			
		
		
		Private Sub RunJavaScript (js As String) As stringGrazie mille
			
				Last edited: 
			
		
	
								
								
									
	
								
							
							 
				 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		