# 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
ft.onNativeAPIHandler('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) {