2012-06-18 3 views

답변

1

Windows 8의 WebView는 Silverlight WebBrowser 컨트롤과 같은 Navigating() 이벤트를 지원하지 않으므로 하이퍼 링크를 가져 오거나 탐색을 취소 할 수 없습니다.

하지만 NavigateToString() 메서드를 사용하고 있으므로 일부 수동 자바 스크립트 코드를 작성하고 WebView.ScriptNotify() 이벤트를 사용하여 동일한 결과를 얻을 수 있습니다.

5

사용자가 자신의 자바 스크립트 중 일부를 사용하여 InvokeScript으로 전화를 걸어 사용자가 페이지에서 이동할 때 수신기를 설정할 수 있습니다. 이것은 C#에서 다음과 같이 보일 것입니다 :

var navigationListenerString = @" 
(function() { 
    function leavingPage() { 
    window.external.notify("LEAVING PAGE"); 
    } 
    window.onbeforeunload = leavingPage; 
})()"; 

webView.InvokeScript("eval", new string[] { navigationListenerString }); 

는 그런 다음 페이지가 언로드되고 사용자가 떠나는 것을 결정하기 위해 특정 메시지를 수신하도록 ScriptNotify를 사용할 수 있습니다. 불행히도 사용자가 어디로 가고 있는지 감지 할 수 없습니다. 또한 하이퍼 링크가 새 창에서 열리고 webview가 언로드되지 않으면 그 중 하나를 감지 할 수 없습니다.

관련 문제