21xrx.com
2025-03-26 11:26:01 Wednesday
文章检索 我的文章 写文章
C++ 使用 WebView2 回调函数
2023-06-22 06:02:25 深夜i     52     0
C++ WebView2 回调函数 Web浏览器 应用程序开发

C++ 是一种常用的编程语言,大多用于系统软件和大型游戏开发。在 C++ 编程中,使用 WebView2 回调函数可以帮助我们管理和控制 web 视图,实现更加智能化和高效化的应用程序。

首先,我们需要了解 WebView2 是什么。WebView2 是一个包含 Microsoft Edge 浏览器核心的控件,可以嵌入到 C++ 应用程序中。通过 WebView2,我们可以在应用程序中嵌入 web 内容,包括 HTML5、CSS3、JavaScript 等网页技术,并且在应用程序中通过 API 实现操作 web 内容的功能,比如加载网页、DOM 操作、JavaScript 交互等。

回调函数是一个可执行的程序,多用于异步编程中。在 C++ 中使用回调函数的目的是让程序更加智能化,极大地提高了程序的性能和效率。当我们使用 WebView2 时,通过回调函数能够实现异步加载数据、动态更新用户界面、控制应用程序的行为等。

我们可以通过使用 WebView2 回调函数实现应用程序中 web 视图的一些操作,比如加载网页、更改网页内容、调用 JavaScript 方法等。下面是 C++ 中使用 WebView2 回调函数的基本示例:

#include <WebView2.h>
#include <iostream>
class SampleWebViewController : public IWebView2CreateWebViewCompletedHandler {
public:
  STDMETHODIMP Invoke(HRESULT result, IWebView2WebView* webview) {
   if (SUCCEEDED(result)) {
     m_webView = webview;
     m_webView->AddRef();
     m_webView->add_WebMessageReceived(
      Callback<ICoreWebView2WebMessageReceivedEventHandler>(
        [this](ICoreWebView2* sender,
        ICoreWebView2WebMessageReceivedEventArgs* args) -> HRESULT {
         wil::unique_cotaskmem_string message;
         args->TryGetWebMessageAsString(&message);
         std::wcout << L"Message received from JS: " << message.get()
           << std::endl;
         return S_OK;
        }).Get(),
      nullptr);
   }
   return S_OK;
  }
private:
  wil::com_ptr<IWebView2WebView> m_webView;
};
int main() {
  wil::unique_cotaskmem_string str(L"https://www.bing.com/");
  SampleWebViewController webviewController;
  CreateWebView2EnvironmentWithDetails(nullptr, nullptr, nullptr,
   Callback<ICreateWebView2EnvironmentCompletedHandler>(
     [&webviewController](HRESULT result,
     IWebView2Environment* environment) -> HRESULT {
      if (SUCCEEDED(result)) {
        environment->CreateWebView(nullptr, &webviewController);
      }
      return S_OK;
     }).Get());
  std::cin.get();
}

以上代码将创建一个带回调函数的 WebView2 控制器,在创建 WebView2 环境并创建 web 视图后,通过回调函数来处理 web 视图中接收的消息,并输出消息内容。

在 C++ 中使用 WebView2 回调函数有很多具体的应用场景,例如通过回调函数实现异步加载数据、监听 web 视图事件、处理 web 视图中接收到的消息等。使用 WebView2 回调函数,能够帮助我们更好地管理和控制 web 视图,让应用程序更加智能化和高效化。

  
  

评论区

请求出错了