2013-10-14 4 views
10

Windows 8.1 xaml 응용 프로그램에서 WebView로 작업 중이며 사용자 지정 프로토콜 탐색을 처리해야합니다. "app : // 12345".사용자 지정 프로토콜에 대한 WebView 캡처 탐색

WebView를 인증 용 웹 사이트로 이동 한 다음이 사용자 지정 프로토콜을 응답으로 리디렉션합니다.

WebView 탐색 이벤트가 실행되지 않고 Windows가이 이벤트를 선택하고 해당 이벤트와 함께 앱을 열려고합니다 ("상점에서 앱 찾기").

WebView가이 프로토콜을 탐색 할 때 잡을 수 있습니까?

+2

어떻게 든 해결하셨습니까? 나는 비슷한 문제를 다루고있다. –

+1

불행히도 이것은 불가능합니다. 최소한 MSWebViewUnsupportedUriSchemeIdentified 이벤트를 가져 오는 Windows 10까지 - https://msdn.microsoft.com/library/windows/apps/dn803906.aspx?f=255&MSPPError=-2147217396 아직 테스트하지 않았습니다. – dkarzon

+0

답변 해 주셔서 감사합니다. Windows 10이 Windows 개발에서 더 많은 문제를 해결할 수 있기를 바랍니다. 이 경우 나는 주사하여 해결 스크립트는 아래 내 의견을 참조하십시오 –

답변

0

비슷한 문제가있어서이 코드를 HTML로 주입하여 해결했습니다. 또는이 코드를 WebView에서 직접 실행할 수도 있습니다.

다음은 C# 코드에서 window.external.notify를 catch하고 원하는 것을 할 수 있습니다.

private void WebView_OnScriptNotify(object sender, NotifyEventArgs e) 
{ 
    if (e.Value.StartsWith("app")) 
    { 
     DoAction(e.Value); 
     return; 
    } 
} 
+0

이것은 페이지 소스에 대한 액세스 권한이 있고 프로토콜에 대한 링크가 실제 'a' 태그이고 JavaScript의 내용이 아닌 경우에만 해결책입니다 –

0

은 아마 잔인한 솔루션입니다,하지만 당신은 방법 NavigateToLocalStreamUri와 함께 IUriToStreamResolver를 사용할 수 있습니다 https://msdn.microsoft.com/library/windows/apps/dn299344. 이 솔루션을 사용하면 IUriToStreamResolver를 구현하는 사용자 지정 해결 프로그램을 만들 수 있습니다. 리졸버는 WebView에서 요구하는 각 리소스에 대해 알림을받습니다. 리졸버에서는 요청 된 리소스마다 스트림을 반환해야합니다. 하지만 이렇게하면 맞춤 프로토콜을 처리 할 수 ​​있습니다.

0

비슷한 질문을 시도했을 때이 질문을 발견했습니다. Windows가 UnsupportedUriSchemeIdentified (@ dkarzon의 의견에 기반)을 구현했기 때문에 지금 제대로 작동해야합니다.

관련 문제