FinClip为企业提供小程序生态圈技术产品,开发者可在FinClip小程序开发帮助中心找到相关FinClip小程序指引

# 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);

自定义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);
© FinClip with ❤ , Since 2017