跳到主要内容
版本:1.3.0

多端sdk设计

1. 技术栈和框架

使用技术栈为React Native,SDK UI组件自己实现,不引入第三方UI组件库。

2. 架构设计

2.1 整体架构:

2.2 核心流程:

3、详细设计

3.1 SDK接口

3.1.1 SDK初始化

Survey.init(options);

参数:

字段类型描述是否必填
hoststring服务端地址,例如: 'https://xiaojusurvey.com'或'http://127.0.0.1'必填
portnumber服务端端口号非必填
appIdstring申请到的小桔问卷的appId必填
channelldstring渠道, 用于投放渠道查询d必填

示例:

import { Survey } from 'react-native-xiaojusurvey'

Survey.init({
host: 'http://127.0.0.1',
port: '8081',
appId: '',
channelld: ''
});

3.1.2 问卷展示

import { Survey, ConfigProvider } from 'react-native-xiaojusurvey'

// 在应用根节点包裹ConfigProvider
const YourApp => () => {
return (
<ConfigProvider theme={theme}>
<View></View>
</ConfigProvider>
)
}

方式1:api调用方式
  Survey.show(options);
Survey.close();

Survey.show方法参数:

字段类型描述是否必填
activityIdstring创建的小桔问卷的SurveyPath必填
containerStyleobject外层问卷容器的样式非必填
contentStyleobject内层卡片的样式非必填
onSuccessfunctionSDK调用成功的回调非必填
onErrorfunctionSDK调用失败的回调非必填
onClosefunction关闭弹窗的回调非必填
onSubmitfunction问卷提交的回调,返回值result:0-成功,1-失败非必填

示例:

import { Survey, SurveyCard } from 'react-native-xiaojusurvey'

// api调用方式
Survey.show({
id: ,
appId: '',
type: 'dialog'
onSuccess: () => {}
onError: (error) => { console.log(error.message) }
});

Survey.close();
方式2:card组件接入方式
<SurveyCard />

SurveyCard组件参数:

字段类型描述是否必填
activityIdstring创建的小桔问卷的SurveyPath必填
containerStyleobject外层问卷容器的样式非必填
contentStyleobject内层卡片的样式非必填
onSuccessfunctionSDK调用成功的回调非必填
onErrorfunctionSDK调用失败的回调非必填
onClosefunction关闭弹窗的回调非必填
onSubmitfunction问卷提交的回调,返回值result:0-成功,1-失败非必填

示例:

import { Survey, SurveyCard } from 'react-native-xiaojusurvey'

// card组件接入方式
<SurveyCard
id=''
onSuccess={() => {}}
onError={(error) => { console.log(error.message) }}
/>

3.2 模块设计

1. 全局配置

  • 主题配置
  • 服务端配置

2. 协议解析

  1. 问卷协议

  2. 题型协议

3. 题型容器

  • 卡片组件/嵌入式卡片组件
  • 弹框组件

4. 题型组件

本期支持六种形式的控件: Radio、CheckBox、Input、TextArea、Star、Grade

5. 基础UI组件