2012-06-01 17 views
5

Soru garip geliyor, ama işte benim durumum.javascript kullanarak UIWebView uygulamasını kapatın: window.close();

Tam ekran kaplayan ([self.view addSubview:webView]; numaralı UIView numaralı telefonumda) UIWebView var. javascript:window.close(); eylemine yapılan UIWebView tıklamalarından önce UIView kasıtlı olarak gizler.

JavaScript'i UIWebView sayfasında UIView'un eylemi ile ilişkilendirebilirim, ör. [webView removeFromSuperView];?

cevap

7

bu mümkündür:

url kendi şemasına şeye yerini alan yani

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

Bu neden olur UIWebViewDelegate yöntemi ,StartLoadWithRequest: şeması "myscheme" olan bir NSURLRequest parametresiyle çağrılmalıdır. Yani bu şemaya bakarsınız ve DoSomething'i çıkarırsınız ve sonra da sizin durumunuzda superView'den kaldırılması çağrılan DoSomething üzerinde hareket edin.

+0

işe edeceğini sesler (UIWebView dealloc olarak muhtemelen stopLoading çağrı emin olmak gerekir). Bir test yapıp size geri dönelim. – Raptor

+1

Başarı! Aslında URL Şeması'nı kullanmaya gerek yok. Sadece URL'de bir kalıp yapın, ardından deseni [NSURL yolu] '' shouldStartLoadWithRequest: 'ile okuyun. Deseni farklı mantıkla işlemek (değişkenler sorgu dizgisiyle bile iletebilirsiniz (coz'dan POST değerleri okunamaz). – Raptor