2017-11-20 2 views
1

WebView에 정보를 표시하는 Mac 응용 프로그램이 있습니다. 지금은 꽤 오래된 응용 프로그램이고 Objective-C에서는 빠르게 잊어 버리고 있습니다.높은 Sierra WebView가 앵커 태그 탐색을 차단합니다.

WebView에는 표시된 페이지의 링크를 클릭하거나 Javascript를 WebView로 보내는 UI의 탭을 클릭하여 페이지 내에서 탐색 할 수있는 앵커 태그가 있습니다. High Sierra에서는 오류가 표시되지 않지만 더 이상 작동하지 않습니다.

isKeyExcludedFromWebScript:을 구현해야하지만 내 시도는 실패했습니다.

WebView의 하위 클래스가 필요합니까? WebView가 포함 된 View Controller에 isKeyExcludedFromWebScript:isSelectorExcludedFromWebScript:을 넣는 것은 작동하지 않습니다. 결코 호출되지 않습니다.

누군가에게 조언이나 예가 있으면 가장 감사하게 생각합니다. 대답은 WKWebView를 사용하도록 앱을 업그레이드하는 것이지만 두 번째 작업을 수행 할 때까지는 빠른 해결을 기대하고 있습니다.

답변

1

해결책을 찾기 위해 여기에 자신의 질문에 대답합니다.

WebView에 HTML 문자열을로드하고 내부 탐색 링크를 사용할 때 접두사로 사용할 기본 URL이 없으므로 앵커 탐색이 작동하지 않는 것이 문제였습니다.

이전에는 High Sierra 이전에 작동 했었기 때문에 WebView의 작동 방식에 대해 새로운 것이 있어야합니다.

해결 방법은 HTML 문자열을 임시 파일에 저장하고 WebView에서 문자열을 직접로드하는 대신 해당 파일의 URL을로드하는 것입니다.

이 내용은 WebView와 WKWebView 모두에 적용됩니다.