다음을 통해 공유

How to disable back/forward in WebView2

kimtaehyung 40 평판 포인트
2025-10-13T01:31:00.49+00:00

"I am a C++ Webview2 developer. I want to disable the back/forward buttons within Webview2. Is there a way to do that?

Microsoft Edge | 기타 | Windows 11
댓글 0개 설명 없음
투표 {count}개

질문 작성자가 수락한 답변
  1. Francisco Montilla 25,005 평판 포인트 독립 자문가
    2025-10-13T02:13:01.92+00:00

    안녕하세요

    예, 방법이 있습니다. 이벤트에서 뒤로 또는 앞으로 탐색을 취소하여 원본에서 수행합니다 NavigationStarting . 최근 WebView2 빌드는 NavigationKind+BackOrForward, 마우스 쪽 단추 Alt 또는 페이지 자체Left에서 왔는지 여부에 관계없이 구별하고 중단 history.back 할 수 있도록 노출됩니다.

    // After CoreWebView2 is created.
    EventRegistrationToken navToken{};
    CHECKHR(m_webview->add_NavigationStarting(
        Microsoft::WRL::Callback<ICoreWebView2NavigationStartingEventHandler>(
            [](ICoreWebView2* /*sender*/,
               ICoreWebView2NavigationStartingEventArgs* args) -> HRESULT
            {
                wil::com_ptr<ICoreWebView2NavigationStartingEventArgs3> args3;
                if (SUCCEEDED(args->QueryInterface(IID_PPV_ARGS(&args3))))
                {
                    COREWEBVIEW2_NAVIGATION_KIND kind{};
                    if (SUCCEEDED(args3->get_NavigationKind(&kind)) &&
                        kind == COREWEBVIEW2_NAVIGATION_KIND_BACK_OR_FORWARD)
                    {
                        // Block back or forward.
                        args->put_Cancel(TRUE);
                    }
                }
                return S_OK;
            }
        ).Get(),
    	&navToken));
    

    NavigationKind.BackOrForward는 + 및 DOM 기록 호출 Alt 과 같은 사용자 제스처를 포함하도록 명시적으로 정의 Left 되어 있으므로 취소하면 앞뒤로 안정적으로 비활성화됩니다. **NavigationKind API는 SDK 1.0.1901.177Win32부터 ICoreWebView2NavigationStartingEventArgs3 사용할 ** 수 있습니다.

    이전 런타임 또는 SDK가 부족한 경우 NavigationKind정확한 WebView2 SDK 및 런타임 버전을 알려주시면 대안을 보여 드리겠습니다.

    1명이 이 답변이 도움이 된다고 생각했습니다.

0 추가 답변

정렬 기준: 가장 유용함

답변

질문 작성자는 답변을 '승인됨'으로 표시하고, 중재자는 답변을 '추천됨'으로 표시할 수 있습니다. 이를 통해 사용자는 해당 답변이 작성자의 문제를 해결했다는 것을 알 수 있습니다.