# 1. 简介
通过注册特定的代理方法,可以覆盖sdk的某些默认行为。
# 2. 通用调用方式
在启动小程序之前,使用finclip_register_proxy
注册特定代理方法,传入回调函数,在回调函数内需要调用finclip_callback_success
对收到 callback_id 返回结果。
void callback(const char *appid, const char *res, void *input, int callback_id, const char *params) {
auto* result = finclip_create_params();
finclip_params_set(result, b"key", b"value");
finclip_params_set(result, b"foo", b"bar");
finclip_callback_success(callback_id, result);
finclip_destory_params(result);
}
finclip_register_proxy("proxy_name", callback, input);
# 3. 可用的代理方法列表
# 3.1 get_user_info
自定义wx.getUserInfo
的返回值
# 3.2 get_user_profile
自定义wx.getUserProfile
的返回值
# 3.3 offline_basic
设置基础库离线包
void callback(const char *appid, const char *res, void *input, int callback_id, const char *params) {
auto* result = finclip_create_params();
finclip_params_set(result, "path", "c:/path/to/offline/basic.zip");
finclip_callback_success(callback_id, result);
finclip_destory_params(result);
}
finclip_register_proxy("offline_basic", callback, input);
# 3.4 offline_applet
设置小程序离线包
void callback(const char *appid, const char *res, void *input, int callback_id, const char *params) {
auto* result = finclip_create_params();
finclip_params_set(result, "path", "c:/path/to/offline/applet.zip");
finclip_callback_success(callback_id, result);
finclip_destory_params(result);
}
finclip_register_proxy("offline_applet", callback, input);
# 3.5 proxy_h5_cookie
自定义h5的cookie
void callback(const char *appid, const char *res, void *input, int callback_id, const char *params) {
auto* result = finclip_create_params();
char *cookies = "[
{"name": "test_0001", "value": "testing_value_0001", "domain": "finclip.com", "path": "/"},
{"name": "test_0002", "value": "testing_value_0002", "domain": "finclip.com", "path": "/", "expire_year": 2026, "expire_month": 12, "expire_day": 5},
]";
auto* result = finclip_create_params();
finclip_params_set(result, "cookielist", cookies);
finclip_callback_success(callback_id, result);
finclip_destory_params(result);
}
finclip_register_proxy("proxy_h5_cookie", callback, input);
# 3.6 more_custom_menu
自定义更多菜单的项目
void callback(const char *appid, const char *res, void *input, int callback_id, const char *params) {
char *str = "\{
"data": [\
{\
"id": "abcde",\
"name": "foo",\
"type": 0\
},\
{\
"id": "qwert",\
"name": "bar",\
"type": 1\
}\
]
}";
auto* result = finclip_build_params(str);
finclip_callback_success(callback_id, result);
finclip_destory_params(result);
}
finclip_register_proxy("more_custom_menu", callback, input);
# 3.7 more_custom_menu_click
自定义更多菜单的点击事件,当用户点击了自定义的更多菜单项时,会触发该回调,params为点击的菜单项的详细信息。
void callback(const char *appid, const char *res, void *input, int callback_id, const char *params) {
printf("%s\n", params);
auto* result = finclip_create_params();
finclip_callback_success(callback_id, result);
finclip_destory_params(result);
}
finclip_register_proxy("more_custom_menu_click", callback, input);
# 3.8 灰度扩展参数配置
除了,我们平台提供的默认灰度配置项,您也可根据业务数据添加一些灰度控制项,这时业务参数小程序在打开时会通过如下代理方法来读取。
示例代码:
// 代理回调函数
void callback(const char *appid, const char *res, void *input, int callback_id, const char *params) {
printf("%s\n", params);
auto* result = finclip_create_params();
finclip_params_set(result, "key1", "value1");
finclip_params_set(result, "key2", "value2");
finclip_callback_success(callback_id, result);
finclip_destory_params(result);
}
// 注册代理方法
finclip_register_proxy("gray_release", callback, input);