Skip to content
On this page

代理设置

设置全局生效

方法一:在初始化的时候设置

cpp
mbSettings* settings = new mbSettings();
memset(settings, 0, sizeof(mbSettings));
settings->mask |= MB_SETTING_PROXY;
settings->proxy.type = MB_PROXY_HTTP;
// 设置 hostname, port, username, password 

mbInit(settings);

完整定义为

cpp
typedef enum {
    MB_PROXY_NONE,
    MB_PROXY_HTTP,
    MB_PROXY_SOCKS4,
    MB_PROXY_SOCKS4A,
    MB_PROXY_SOCKS5,
    MB_PROXY_SOCKS5HOSTNAME
} mbProxyType;

typedef struct {
    mbProxyType type;
    char hostname[100];
    unsigned short port;
    char username[50];
    char password[50];
} mbProxy;

typedef void(MB_CALL_TYPE* mbOnBlinkThreadInitCallback)(void* param);

typedef struct _mbSettings {
    mbProxy proxy;
    unsigned int mask; // 208 offset
    mbOnBlinkThreadInitCallback blinkThreadInitCallback;
    void* blinkThreadInitCallbackParam;
    intptr_t version;
    const wchar_t* mainDllPath;
    HMODULE mainDllHandle;
} mbSettings;

方法二:调用接口全局设置

cpp
mbProxy proxy = { 
    // 自行设置内容, mbProxy 定义见上
};
mbSetProxy(nullptr, &proxy);

为单独的 webview 设置

cpp
mbWebView mbView = mbCreateWebWindow(MB_WINDOW_TYPE_POPUP, nullptr, 0, 0, 800, 600);
// ...
mbProxy proxy = { 
    // 自行设置内容, mbProxy 定义见上
};
mbSetProxy(mbView, &proxy);

或者

cpp
mbWebView mbView = mbCreateWebWindow(MB_WINDOW_TYPE_POPUP, nullptr, 0, 0, 800, 600);
// ...
mbProxy proxy = { 
    // 自行设置内容, mbProxy 定义见上
};
mbSetViewProxy(mbView, &proxy);

mbSetProxymbSetViewProxy 的区别是,如果 mbSetProxy 第一个参数传空则全局设置,而 mbSetViewProxy 第一个参数传空没有效果