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

# ReactNative API

# 1. 初始化小程序

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) {
		// 转发小程序
		return [];
	},
	getUserInfo(params) {
		// 获取用户信息
		return {
			name: 'jimmy',
			nickName: 'jimmy chung',
			avatarUrl: 'http://xxx.jpg',
		};
	},
	getCustomMenus(params) {
		// 点击菜单
		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(params) {
		// 点击自定义菜单
		console.log('onCustomMenuClick', params);
	},
	appletDidOpen(params) {
		// 小程序打开后(仅 iOS)
		console.log('appletDidOpen', params);
		return params;
	},
};
/**
 * @param {Object} handler 包含上述几个事件处理函数
 **/
MopSDK.registerAppletHandler(handler);

# 8. 注册 webview 扩展 API

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} webview 提供的函数名
 * @param {Object} 调用的参数
 **/
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) {
© 2021 凡泰极客

👋🏻 嘿,你好!

「FinClip」是一套基于云原生框架设计的小程序容器。能够让任何移动应用在集成小程序SDK之后,获得可用、安全的小程序运行能力。

>> 点我免费注册体验

查看产品文档
了解与 FinClip 相关的一切信息

产品博客 👈  了解产品更新与核心功能介绍
资源下载 👈  获取小程序 SDK 与开发工具
文档中心 👈  查询 FinClip 小程序开发指南与答疑

商务咨询热线
预约 FinClip 产品介绍,咨询商务报价或私有化部署事宜

400-066-00210755-86967467

获取产品帮助
联系 FinClip 技术顾问,获取产品资料或加入开发者社群

联系线上
人工客服

或 👉  点击这里,提交咨询工单