2010-01-20 30 views
12

Bir uygulamada WebView dosyasını gömerken ve içine html sayfaları yüklerken, JavaScripts alert()/confirm()/etc. çalışma.
... ilişkilidir WebUIDelegate s -(void)webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame: vb görünüyor tek şey ... ama bunlar hayata oldukça gereksiz görünüyor bunlar için özel diyaloglar yazma anlamına gelecektir -JavaScript uyarısı() gömülü WebView'da çalışmıyor

belgelerinde etrafa orada WebPreferences hiçbir ilgili ayarlardır Özel bir WebUIDelegate'a ihtiyacım yok ve yalnızca varsayılan olanı kullanmaya devam etmek istiyorum.

Şüphesiz, alert() ve diğerlerini etkinleştirmenin bir yolu olmalı, ama nasıl?

+0

Bu temsilci yöntemine ilişkin belgelerin "Bu yöntemi uygulamıyorsanız hiçbir işlem yapılmaz" yazıyor, bu nedenle kendi sorunuzu yanıtlamış gibi görünüyorsunuz. – smorgan

+0

Bunu şöyle yorumluyorum: "Bu yöntemi uygulamamış özel bir WebUIDelegate belirlerseniz hiçbir işlem yapılmaz" * - ideal olarak kendi WebUIDelegate'imi ayarlamak bile istemiyorum. –

cevap

5

Varsayılan olarak hiçbir varsayılan WebUIDelegate kümesi çıktı - Apple herkesin kendileri için aynı temel özellikleri uygulayacağını düşünüyor.

+2

Ama js 'istemi çalışır. Yani bu tutarsız. –

12

Temel işi yapacak örnek bir kod. Ancak, bu nesnenin WebView için bir UIDelegate olarak kayıtlı olduğundan emin olmanız gerekir.

- (void)webView:(WebView *)sender runJavaScriptAlertPanelWithMessage:(NSString *)message initiatedByFrame:(WebFrame *)frame { 
    NSAlert *alert = [[NSAlert alloc] init]; 
    [alert addButtonWithTitle:@"OK"]; 
    [alert setMessageText:message]; 
    [alert runModal]; 
    [alert release]; 
} 
+0

"Bu nesnenin WebView için UIDelegate olarak kayıtlı olduğundan emin olmanız gerekir." O küçük bulanıklık akşamımı kurtardı. Teşekkürler. – byron