API 兼容性:
QRN:v6.3.0
iOS: 80011315 Android:60001569
QUrs
业务获取问卷信息、展示和提交问卷相关 API
import { QUrs } from 'qunar-react-native';
QUrs.getUrs(params: object, callback: function): void
请求当前页面可展示的 urs 问卷数据
params = {
bizName: string, //业务名字,eg:'hotel'
from: string, //请求来源,默认是'client'
pageId: string, // 页面ID,eg:qrn$h_home_rn/GHotelList
traceId: string, //
extMap: {
uniqueId: 'sanya_35127' // 可以为空,如果希望按照其就行频控, 则需要.可由业务线扩展
}
};
{
"bstatus":{
"code" : 0,//非0状态为失败状态,比如-1缺少参数、服务器错误、-2 网络链接失败、-3 未知错误等
"des": "成功",
},
"data": {
"code": 0,//业务code状态
"msg": "成功",
"data": [
{
"taskId": "1000003",
"bizName": "hotel",
"bizUseTime": {
"showAfterSecond": "10"
},
"showNow": false,
"position": 4,
"pageId": "qrn$h_home_rn/HotelDetail",
"questionnaire": {
"id": 1000000,
"name": "验证",
"questions": [
{
"id": 1000001,
"label": "酒店满意度",
"options": [
{
"label": "比较认同",
"gif": "https://qimgs.qunarzz.com/wpf_newmpic_001/c85856ba9d8855a7eab529822773faec.png",
"value": 1
},
{
"label": "不确定",
"gif": "https://qimgs.qunarzz.com/wpf_newmpic_001/284eefb4f2ad46c1e2cdbd462ddee739.png",
"value": 2
},
{
"label": "完全不认同",
"gif": "https://qimgs.qunarzz.com/wpf_newmpic_001/43f79bbe76208fc065e9ab5d1ac6d7f4.png",
"value": 3
}
]
}
]
}
},
{
"taskId": "1000005",
"bizName": "hotel2",
"bizUseTime": {
"showAfterSecond": "10"
},
"showNow": false,
"position": 5,
"pageId": "qrn$h_home_rn/HotelDetail",
"questionnaire": {
"id": 1000000,
"name": "验证",
"questions": [
{
"id": 1000001,
"label": "酒店满意度",
"options": [
{
"label": "比较认同",
"gif": "https://qimgs.qunarzz.com/wpf_newmpic_001/c85856ba9d8855a7eab529822773faec.png",
"value": 1
},
{
"label": "不确定",
"gif": "https://qimgs.qunarzz.com/wpf_newmpic_001/284eefb4f2ad46c1e2cdbd462ddee739.png",
"value": 2
},
{
"label": "完全不认同",
"gif": "https://qimgs.qunarzz.com/wpf_newmpic_001/43f79bbe76208fc065e9ab5d1ac6d7f4.png",
"value": 3
}
]
}
]
}
}
]
}
}
QUrs.onUrsShow(params: object, callback: function): void
当 URS 展示时调用,框架进行埋点和上传,后端收到请求后进行记录做频次控制
注意:①通过getUrs 获取的实时问卷是后端做频控,只需要传taskId和pageId;
②通过getBizUrsData或者resourceId资源位 获取的问卷数据需要额外传 surveyId 和 resourceId ,本地也做频控
params = {
taskId: string,
pageId: string,
surveyId: string,
resourceId: string
};
{
"bstatus":{
"code" : 0,//非0状态为失败状态,比如-1缺少参数、服务器错误、-2 网络链接失败、-3 未知错误等
"des": "success",
},
"data":{
"code": 0,//业务服务状态
"msg":"success"
}
}
QUrs.onUrsSubmit(params: object, callback: function): void
保存问卷答案 API,当用户选中答案进行提交的时候调用。
params = {
questionnaireId: number,
pageId: string,
answerData: [
{
id: 1234, // 问题id
value: ['', '', '好'] // value的size是问题对应的选项数量, 被选择的选项填充label, 没被选择的选项为空串
}
]
};
{
"bstatus":{
"code" : 0,//非0状态为失败状态,比如-1缺少参数、服务器错误、-2 网络链接失败、-3 未知错误等
"des": "success",
},
"data":{
"code": 0,//业务服务状态
"msg":"success"
}
}
QUrs.tryShowFloatUrs(params: object, callback: function): void
展示 URS 问卷浮层入口
params = {
taskId: string
};
{
"bstatus":{
"code" : 0,//非0状态为失败状态,比如-1缺少参数、服务器错误、-2 网络链接失败、-3 未知错误等
"des": "success",
}
}
QUrs.canShowFloatUrsView(params: object, callback: function): void
设置当前页面是否展示 urs 浮层 View(生效版本:Android:60001578,IOS:80011320)
params = {
canShow: boolean
};
{
"bstatus":{
"code" : 0,//非0状态为失败状态,比如-1缺少参数、服务器错误、-2 网络链接失败、-3 未知错误等
"des": "success",
}
}
QUrs.closeFloatUrs(params: object, callback: function): void
关闭 URS 问卷浮层入口(生效版本:Android:60001578,IOS:80011320)
params = {};
{
"bstatus":{
"code" : 0,//非0状态为失败状态,比如-1缺少参数、服务器错误、-2 网络链接失败、-3 未知错误等
"des": "success",
}
}
import { QUrs } from 'qunar-react-native';
// 获取问卷信息
QUrs.getUrs(
{
bizName: 'hotel',
from: 'client',
pageId: 'flight_pay_success_new', // 页面Id
traceId: '',
extMap: {
uniqueId: 'sanya_35127' // 可以为空,如果希望按照其就行频控, 则需要.可由业务线扩展
}
},
(result) => {
this.setState({
ursResult: JSON.stringify(result)
});
}
);
QUrs.addUrsShowListener(resourceId: string, callback: function): void
添加 Urs 问卷展示监听 注意: 该方法在 iOS: 80011321, Android:60001580 版本后才支持
resourceId
资源位 ID, 需要通过后端配置传入callback
回调函数, 当 Urs 问卷展示时触发import { QUrs } from 'qunar-react-native';
// 获取问卷信息
QUrs.addUrsShowListener('id-123-456', (result) => {
console.log(result);
});
QUrs.removeUrsShowListener(resourceId: string): void
移除 Urs 问卷展示监听 注意: 该方法在 iOS: 80011321, Android:60001580 版本后才支持
resourceId
资源位 ID, 需要通过后端配置传入import { QUrs } from 'qunar-react-native';
// 获取问卷信息
QUrs.removeUrsShowListener('id-123-456');
在原来的参数基础上,增加 surveyId 和 resourceId (类型②,通过getBizUrsData获取的问卷数据,或者resourceId资源位展示的时候需要传)
params = {
taskId: string,
pageId: string,
surveyId: string,
resourceId: string
};
//1、拼接问卷url,在url基础上拼接上pageId、问卷ID、taskId、资源位Id
const hyUrl = `${showingUrs.url}?pageId=${encodeURIComponent(pageID)}&surveyId=${encodeURIComponent(
showingUrs.surveyId
)}&taskId=${encodeURIComponent(taskId)}&resourceId=${encodeURIComponent(resourceId)}`;
//2、拼接hyScheme链接,增加半透明属性
const scheme = `${DeviceInfo.scheme}://hy?url=${encodeURIComponent(
hyUrl
)}&animate=none&type=all-transparent&showLoading=false`;
QUrs.addUrsCloseListener(resourceId: string, callback: function): void
添加 Urs 问卷关闭监听 注意: 该方法在 iOS: 80011321, Android:60001580 版本后才支持
resourceId
资源位 ID, 需要通过后端配置传入callback
回调函数, 当 Urs 问卷关闭时触发import { QUrs } from 'qunar-react-native';
// 获取问卷信息
QUrs.addUrsCloseListener('id-123-456', (result) => {
console.log(result);
});
QUrs.removeUrsCloseListener(resourceId: string): void
移除 Urs 问卷关闭监听 注意: 该方法在 iOS: 80011321, Android:60001580 版本后才支持
resourceId
资源位 ID, 需要通过后端配置传入import { QUrs } from 'qunar-react-native';
// 获取问卷信息
QUrs.removeUrsCloseListener('id-123-456');
QUrs.addUrsSubmitListener(resourceId: string, callback: function): void
添加 Urs 问卷提交监听 注意: 该方法在 iOS: 80011321, Android:60001580 版本后才支持
resourceId
资源位 ID, 需要通过后端配置传入callback
回调函数, 当 Urs 问卷提交时触发import { QUrs } from 'qunar-react-native';
// 获取问卷信息
QUrs.addUrsSubmitListener('id-123-456', (result) => {
console.log(result);
});
QUrs.removeUrsSubmitListener(resourceId: string): void
移除 Urs 问卷提交监听 注意: 该方法在 iOS: 80011321, Android:60001580 版本后才支持
resourceId
资源位 ID, 需要通过后端配置传入import { QUrs } from 'qunar-react-native';
// 获取问卷信息
QUrs.removeUrsSubmitListener('id-123-456');
//1、拼接问卷url,在url基础上拼接上pageId、问卷ID、taskId、资源位Id
const hyUrl = `${showingUrs.url}?pageId=${encodeURIComponent(pageID)}&surveyId=${encodeURIComponent(
showingUrs.surveyId
)}&taskId=${encodeURIComponent(taskId)}&resourceId=${encodeURIComponent(resourceId)}`;
//2、拼接hyScheme链接,增加半透明属性
const scheme = `${DeviceInfo.scheme}://hy?url=${encodeURIComponent(
hyUrl
)}&animate=none&type=all-transparent&showLoading=false`;
QUrs.getBizUrsData(params: object, callback: function): void
通过 taskId 获取问卷信息 注意: 该方法在 iOS: 80011321, Android:60001580 版本后才支持
params = {
taskId: string,
pageId: string
};
import { QUrs } from 'qunar-react-native';
// 获取问卷信息
QUrs.getBizUrsData(
{
taskId: '83',
pageId: 'qrn$h_home_rn/HotelDetail'
},
(result) => {
alert(JSON.stringify(result));
}
);
{
"bstatus":{
"code" : 0,//非0状态为失败状态,比如-1缺少参数、服务器错误、-2 网络链接失败、-3 未知错误等
"des": "成功",
},
"data": {
"taskId": "292",
"taskRateControl": [
{
"days": 1,
"maxCount": 1
},
{
"days": 7,
"maxCount": 7
}
],
"controlByBiz": [//取这个节点下的数据展示
{
"showPages": {
"qrn$h_home_rn/HotelList": 20
},
"surveys": [
{
"title": "点击此处,参加有奖调研!",
"content": "轻松领取200积分!",
"url": "https://m.flight.qunar.com/shark/active/7731bcd442dcb4d6234e4624b714e807",
"iconUrl": "https://s.qunarzz.com/f_cms/2023/1693279637454_668967712.webp",
"surveyId": "235"
}
]
}
],
"adr": false,
"minVid": 0,
"extraInfo": ""
}
}