2012-06-01 17 views
5

La domanda sembra strana, ma qui è il mio caso.Chiudi UIWebView utilizzando javascript: window.close();

Ho un UIWebView nel mio UIView (fatto da [self.view addSubview:webView];) che occupa schermo intero. Nasconde intenzionalmente lo UIView prima dei clic UIWebView su un'azione javascript:window.close();.

Come associo JavaScript nella pagina UIWebView all'azione UIView, ad es. [webView removeFromSuperView];?

risposta

7

Questo è possibile:

impostare la posizione a qualcosa con il proprio schema nel URL, cioè

document.location.href = "myscheme: // DoSomething"

Ciò causerà il metodo UIWebViewDelegate dovrebbeStartLoadWithRequest: da chiamare con un parametro NSURLRequest il cui schema è "myscheme". Quindi si cerca questo schema e si estrae DoSomething e quindi si agisce sul DoSomething, che nel tuo caso sarebbe chiamare la rimozione da superView.

(Nella dealloc UIWebView probabilmente necessario assicurarsi di chiamare StopLoading)

+0

suoni che avrebbe funzionato. Lasciami fare un test e tornare da voi ragazzi. – Raptor

+1

Successo! In realtà non è necessario utilizzare lo schema URL. Basta creare un pattern in URL, quindi leggere il pattern in '[percorso NSURL]' di 'shouldStartLoadWithRequest:'. Gestisci il pattern con logica diversa (puoi persino passare le variabili con la stringa di query (di coz, i valori POST non possono essere letti). – Raptor

Problemi correlati