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

# API/组件自定义

如果小程序里需要调用一些宿主 App 提供的能力,而 FinClip 小程序 SDK 未实现或无法实现时,就可以通过注册自定义 API 来实现,使得小程序里也能够调用 App 中注册的 API 了。

注册自定义 API 分两个场景:

  1. 注册给原生小程序使用的自定义 API;
  2. 注册给小程序中 WebView 组件加载的 H5 使用的自定义 API。(暂不支持)

# 1. 自定义小程序 API

注册自定义小程序 api 以及使用自定义小程序 api 有四步:

  1. 实现自定义 api
  2. 注册自定义 api
  3. 在小程序配置中声明自定义 api
  4. 小程序中调用自定义 api

# 1.1 注册自定义小程序异步 API

# 1.1.1 实现自定义异步 api

实现自定义小程序异步 api 示例

function finclipLogin(args) {  
	/**  
	 * params 小程序发送的参数  
	 * callback 用于执行成功或失败的回调  
	 */
  const { callback, params } = args  
  console.log('finclipLogin params', JSON.stringify(params))
  // do something
  const res = true
  // do something end
  if(res){
	  callback.onSuccess({ message: 'finclipLogin success !!' })  
  }else{
     callback.onFail({ errMsg: 'finclipLogin fail !!' }) 
  }
}

# 1.1.2 注册自定义异步 api

async function startApplet(){
	const appletClient = await client.startApplet({  
	  appId: '小程序的 appId',  
	  apiServer: '服务器的地址'
	})
	appletClient.apiManager.registerCustomApi('finclipLogin', finclipLogin)
}

# 1.1.3 在小程序配置文件中声明自定义 api

在小程序根目录创建 FinClipConf.js 并进行相应的自定义 api 配置,或通过 loadExtApi 传入配置参数


module.exports = {
	extApi:[
		{ //普通交互API
			name: 'finclipLogin', //扩展api名 该api必须Native方实现了
			sync: false, //是否为同步api
			params: { //扩展api 的参数格式,可以只列必须的属性
				url: ''
			}
		}
	]
}

小程序端更多配置信息可参考 ft.loadExtApi (opens new window)

# 1.1.4 小程序里调用自定义小程序异步 api

ft.finclipLogin({
	url:'https://www.baidu.com',
	success: function (res) {
		console.log("调用customEvent success");
		console.log(res);
	},
	fail: function (res) {
		console.log("调用customEvent fail");
		console.log(res);
	}
});

© FinClip with ❤ , Since 2017