21xrx.com
2024-12-22 21:10:54 Sunday
登录
文章检索 我的文章 写文章
C++ 使用 WebView2 回调函数
2023-06-22 06:02:25 深夜i     --     --
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 视图,让应用程序更加智能化和高效化。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复