金数据SDK文档(jinshuju.com)

本文档适用于您的金数据账号位于 jinshuju.com,如有疑问请联系客服或者销售

金数据提供SDK可对表单进行创建和编辑操作。

SDK应用场景列举

1 将金数据创建和编辑表单功能无缝接入企业当前系统

如果企业已有Web站点,可将金数据SDK嵌入到企业页面中。 通过在你的企业系统中点击按钮等事件触发新建表单或编辑已在金数据中已存在的表单。SDK提供的新建和编辑表单页面中不会显示金数据的账号信息和退出金数据登录按钮,并且新建的表单以及表单产生的数据依然存储在金数据中,你可以随时使用。

2 静默登录和注册金数据系统

如果企业中已拥有用户体系,金数据可以根据SDK请求中携带的企业用户ID自动登陆系统,静默登陆后可直接进行创建和编辑表单的操作。如果企业用户ID并未在金数据中注册,系统会静默注册金数据账号,然后直接创建和编辑表单。

3 灵活控制SDK可使用的字段范围

企业中也可以灵活控制SDK中创建和编辑表单可使用的字段范围。金数据企业版提供了28个表单字段。当企业调用SDK时,可定义SDK中不可使用的字段,让不同的企业用户可以有不同的字段权限。

SDK使用指南

1. 向金数据申请初始化SDK

初始化脚本示例如下:

  1. <script type='text/javascript'>
  2. (function (w, d, t, s, n) {
  3. w[n] = w[n] || function () { (w[n].q = w[n].q || []).push(arguments); };
  4. var a, x = d.getElementsByTagName(t)[0];
  5. if (d.getElementById(n)) {return;}
  6. a = document.createElement(t); a.id = n; a.type = 'text/javascript'; a.async = true; a.src = s;
  7. x.parentNode.insertBefore(a, x);
  8. })(window, document, 'script', 'https://www.jinshuju.com/sdk.js?appid=<your_sdk_appid>&v=1.0.0', 'gdsdk');
  9. <script>

2. 创建新表单

你可以在数据属性中使用data-role="gd-sdk",或直接调用gdsdk.createForm()方法来创建一个新表单。示例如下:

  1. <button data-role="gd-sdk">创建新表单</button>
  1. gdsdk.createForm()

3. 编辑表单

你可以在数据属性中使用data-role="gd-sdk"data-form="<form_token>",或直接调用gdsdk.editForm("<form_token>")方法来编辑表单。示例如下:

  1. <button data-role="gd-sdk" data-form="Dv6jVf">修改</button>
  1. gdsdk.editForm("Dv6jVf")

4. 保存表单

你可以将保存表单按钮的事件在gdsdk.ready中进行绑定。示例如下:

  1. gdsdk.ready = function() {
  2. gdsdk.events.onFormSaved = function(data, sdkWindow) {
  3. var formJSON = data.form; // saved form json
  4. sdkWindow.close(); // close sdk window
  5. // specify your code to handle the event
  6. };
  7. };

5. 控制表单显示和隐藏的字段

你可以配置在引用的SDK中显示和隐藏的字段列表。配置后的字段将不出现在新建和编辑的表单中。如only和except同时使用,系统会取两者交集显示在SDK中。示例如下:

  1. gdsdk.ready = function() {
  2. gdsdk.config({
  3. fields: {only: ['single_line_text', 'goods', 'cascade_drop_down'],
  4. except: ['single_line_text', 'paragraph_text', 'single_choice']}
  5. });
  6. };

可配置的字段列表如下:

  1. ["single_line_text", "paragraph_text", "single_choice", "multiple_choice",
  2. "likert", "matrix", "number", "time", "date", "drop_down", "section_break",
  3. "page_break", "link", "rating", "cascade_drop_down", "attachment",
  4. "form_association", "formula", "mobile", "email", "address",
  5. "geo", "phone", "goods", "table"]

6. 控制SDK打开窗口在浏览器新tab中还是新窗口

你可以配置在引用的SDK中打开窗口在浏览器新tab中还是新窗口。示例如下:

  1. gdsdk.ready = function() {
  2. gdsdk.config({
  3. open: 'tab'
  4. });
  5. };

可配置的打开窗口方式如下:

  1. 'tab', 'window'

7. 支持JWT登录和静默注册

SDK中支持JWT登录用户和静默注册用户。 JWT中需包含请求登录用户的uid。如请求登录的用户没有注册,则会在金数据系统中静默注册。注册用户用户名为:User_<JWT中的uid>邮箱为:<JWT中的uid>@fake.<Subdomain>.com;如请求登录的用户已经注册,则会直接登录金数据系统。 示例如下:

  1. <button data-role="gd-sdk" data-jwt="<jwt>" data-form="Dv6jVf">修改</button>
  1. gdsdk.createForm("<jwt>")
  2. gdsdk.editForm("<form_token>", "<jwt>")

8. 支持JWT退出登录

SDK中支持JWT退出登录用户。JWT中需包含请求退出登录用户的uid,并且可以选择填写退出登录之后的回调函数。 示例如下:

  1. gdsdk.logout("<jwt>", function() {
  2. location.href = '/home';
  3. })