webkit2gtk3实现跳过网页https认证(显示白屏)

1、https跳过ca认证        

       通过webkit2gtk3实现网页之后遇到一个问题,就是在显示https网页的时候由于ca证书的问题,在正常浏览器上会提示非安全的网站,然后仍然打开就ok了,但是在webkit2gtk3网页上去始终出现白屏的情况,找了半天终于找到了忽略ca错误的接口,

在load url之前写:

webkit_web_context_set_tls_errors_policy(context, WEBKIT_TLS_ERRORS_POLICY_IGNORE);

即可忽略ca错误正常显示网页。

2、添加cookie

    WebKitWebContext* context = webkit_web_view_get_context(WEBKIT_WEB_VIEW(webview));
    WebKitCookieManager* cookie = webkit_web_context_get_cookie_manager(context);
    
    SoupCookie soupCookit = {0};
    soupCookit.name = "token";
    soupCookit.path = "/";
    soupCookit.value = token;
    soupCookit.domain = host;
    webkit_cookie_manager_add_cookie(cookie,&soupCookit,NULL,NULL,NULL);

    SoupCookie webviewCookit = {0};
    webviewCookit.name = "x-webview";
    webviewCookit.path = "/";
    webviewCookit.value = "1";
    webviewCookit.domain = host;
    webkit_cookie_manager_add_cookie(cookie,&webviewCookit,NULL,NULL,NULL);

3、资源加载(接口调用)


static void _resource_load_started(WebKitWebView *web_view,WebKitWebResource *resource,WebKitURIRequest *request,gpointer priv){

    const char* p = webkit_uri_request_get_uri(request);
    //p即是页面上请求的资源路径,可针对不同的路径做出不同的页面响应操作(比如退出关闭页面)
}

g_signal_connect(WEBKIT_WEB_VIEW(webview),"resource_load_started",G_CALLBACK(_resource_load_started),window);

最后附上官网接口地址:

https://webkitgtk.org/reference/webkit2gtk/stable/index.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章