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

# React Native API

# 1. 初始化小程序

备注:如果需要其他配置项的初始化方法请参考文档SDK 初始化

const eventEmitter = new NativeEventEmitter(NativeModules.FINMopSDK);
/**
 * @param {String} appkey
 * @param {String} secret
 * @param {String} apiServer
 * @param {String} apiPrefix
 * @param {Object} eventEmitter
 * @param {Object} finMopSDK(原生模块引用)
 **/
MopSDK.initialize({
	appkey:
		'Ev7QHvml1UcW98Y1GaLfRz34ReffbDESaTXbCoFyKhEm0a3gam0elOOOdZ6Twpa3HkBzlvOwJ2cyhOrMVWuuGw==',
	secret: '16f2d2700453ae51',
	apiServer: 'https://api.finclip.com',
	apiPrefix: '/api/v1/mop/',
	nativeEventEmitter: eventEmitter,
	finMopSDK: NativeModules.FINMopSDK,
})
.then(res => {
	isInited = true;
	Alert.alert('初始化成功');
})
.catch(error => {
	Alert.alert('初始化失败');
});

# 2. 获取当前正在使用的小程序信息

MopSDK.currentApplet().then(res => {
	console.log('currentApplet', res);
});

# 3. 关闭小程序

/**
 * @param {String} appId
 * @param {Boolean} animated 关闭是否有动画
 **/
MopSDK.closeApplet('xxxxx', true);

# 4. 关闭当前打开的所有小程序

MopSDK.closeAllApplets();

# 5. 二维码打开小程序

/**
 * @param {String} qrcode
 **/
MopSDK.qrcodeOpenApplet(qrcode)

# 6. 清除缓存的小程序

MopSDK.clearApplets();

# 7. 注册小程序事件处理

const handler = {
	forwardApplet(params) {
	// 转发小程序
	var appletInfo = params.appletInfo;	
	var appId = appletInfo.appId;
	},
	getUserInfo(params) {
		// 获取用户信息
		return {
			name: 'jimmy',
			nickName: 'jimmy chung',
			avatarUrl: 'http://xxx.jpg',
		};
	},
	getCustomMenus(appId) {
		// 点击菜单
		let list = [
			{
				menuId: 'menuid1',
				image: 'image',
				title: 'title',
				type: 'type',
				foo: 'foo',
			},
			{
				menuId: 'menuid2',
				image: 'image',
				title: 'title',
				type: 'type',
				foo: 'foo',
			},
		];
		return list;
	},
	onCustomMenuClick(appId,path,menuId,appInfo) {
		// 点击自定义菜单
		console.log('onCustomMenuClick');
	},
	appletDidOpen(appId) {
		// 小程序打开后(仅 iOS)
		console.log('appletDidOpen', params);
		return params;
	},
};
/**
 * @param {Object} handler 包含上述几个事件处理函数
 **/
MopSDK.registerAppletHandler(handler);

## 8. 注册 webview 扩展 API
```Javascript
const rnWebCustomAPI = params => {
	console.warn('webview 自定义api rnWebCustomAPI call', params);
	return {
		errMsg: 'rnWebCustomAPI:ok',
		data: '100',
	};
};
/**
 * @params {String} WEBVIEW 自定义 API 名称
 * @params {Function} WEBVIEW 自定义 API 实现
 **/
MopSDK.addWebExtentionApi('rnWebCustomAPI', rnWebCustomAPI);

// webview
JSSDK.callNativeAPI('rnWebCustomAPI', {
	bar: 1
})

# 9. 注册扩展 API

const rnCustomAPI = params => {
	console.warn('自定义 api rn rnCustomAPI call', params);
	return {
		errMsg: 'rnCustomAPI:ok',
		data: '100',
	};
};
/**
 * @params {String} 自定义 API 名称
 * @params {Function} 自定义 API 实现
 **/
MopSDK.registerExtensionApi('rnCustomAPI', rnCustomAPI);

# 10. 原生调用 webview 中的 js 方法

/**
 * @param {String} appId
 * @param {String} eventName 提供的函数名
 * @param {Object} eventData
 **/
MopSDK.callJS(appId, 'app2jsFunction', {
	data: 100,
})
.then(res => {
	console.warn('calljs 调用成功');
})
.catch(res => {
	console.warn('calljs 调用失败');
});

// webview
JSSDK.registNativeAPIHandler('app2jsFunction', funtion(res){
	console.log('调用的结果为', res)
})

# 11. 原生发送事件给小程序

/**
 * @param {String} appId
 * @param {Object} data
 **/
MopSDK.sendCustomEvent(appId, {
	evenatName: 'hello-world',
	foo: 'test',
});

# 12. 结束小程序

/**
 * @param {String} appId
 * @param {Boolean} animated 是否动画
 **/
MopSDK.finishRunningApplet(appId, true);

# 13. 设置小程序切换动画(仅安卓)

/**
 * @param {String} anim 
 * SlideFromLeftToRightAnim
 * SlideFromRightToLeftAnim,
 * SlideFromTopToBottomAnim,
 * SlideFromBottomToTopAnim,
 * FadeInAnim,
 * NoneAnim
 **/
MopSDK.setActivityTransitionAnim(anim) {
© FinClip with ❤ , Since 2017