2010-01-20 2 views
12

WebView을 응용 프로그램에 삽입하고 HTML 페이지를로드하는 경우 JavaScript alert()/confirm()/etc. 작동하지 않습니다.
... 관련있다 WebUIDelegate-(void)webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame: 등을 보이는 유일한 것은 ... 그러나 이러한 구현은 꽤 중복 보인다 이러한 사용자 정의 대화 상자를 작성하는 의미 -JavaScript 경고()가 내장 웹 뷰에서 작동하지 않음

문서에 둘러보고,이 WebPreferences에는 관련 설정이 없습니다 사용자 정의 WebUIDelegate이 필요하지 않으며 기본값을 그대로 사용하고 싶습니다.

alert() 외에도 간단하게 활성화 할 수있는 방법이 있어야하지만 어떻게해야합니까?

+0

위임 메서드에 대한 설명서에는 "이 메서드를 구현하지 않으면 아무런 동작이 수행되지 않습니다."라는 메시지가 표시되어 사용자가 직접 질문 한 것처럼 보입니다. – smorgan

+0

나는 "이 방법을 구현하지 않는 커스텀 WebUIDelegate를 설정하면 아무런 조치도 취하지 않는다"라고 해석한다. * - 이상적으로는 내 자신의 'WebUIDelegate'를 설정하기를 원하지 않는다. –

답변

5

단순히 기본값이 없습니다. Apple은 모든 사람이 동일한 기본 기능을 스스로 구현할 것으로 기대합니다.

+2

하지만 js prompt가 작동합니다. 그래서 일종의 일관성이 없습니다. –

12

다음은 기본적인 작업을 수행하는 샘플 코드입니다. 그러나이 객체가 WebView의 UIDelegate로 등록되어 있는지 확인해야합니다.

- (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

"그러나이 개체가 WebView의 UIDelegate로 등록되어 있는지 확인해야합니다." 그 작은 신호가 내 저녁을 구했다. 감사. – byron

관련 문제