总结:表单2.0:可独立分享的小程序表单,信息收集更省力(附6.2功能更新)
优采云 发布时间: 2022-09-30 03:08总结:表单2.0:可独立分享的小程序表单,信息收集更省力(附6.2功能更新)
在机构的实际运作和教学过程中,大量的形式被创造出来并被反复使用。
比如课程预约表,教师需要在不同的课程下创建一个又一个具有相同选项的表格,浪费了很多宝贵的时间和精力。
在最新版本的Whale Punch6.2中,我们为form2.0推出了惊人的“引用表格”功能:管理员可以选择系统中允许引用的任意表格,直接参考系统中的表格。在您自己的课程或发现页面上的预约表中。
该功能大大减少了表单的重复创建,提高了教师的操作效率,也帮助机构将需要在多个地方创建的每个表单标准化,更易于管理。↓
值得一提的是,表单除了在小程序内部相互引用外,还可以作为一个独立的表单工具,在不同的场景中可以独立共享和使用。
在鲸拳专业版及以上版本的小程序中,超级管理员可以将表格单独分享到微信群、朋友圈,或者在公众号菜单或文章上采集信息。↓
在表单工具中,每个表单都有对应的分享条目
学生和家长可以直接点击公众号菜单栏,或者直接从某个微信公众号文章进入老师发布的表格页面参与填表;
还可以在*敏*感*词*微信私聊时收到老师发来的表格二维码,扫码进入小程序表格页面填写。老师可以考虑使用表格的独立工具属性规划一些不同的微信生态系统。场景下的精细化运营和分享引流活动。
三、组件优化和个性化
选项支持批处理,机构可创建专属表格
表单运行效率的提升,从组件的模块化开始。
为了尽可能提高教师效率,降低运营成本,精普6.2版本进行了优化,增加了很多表单组件:下拉选择组件、姓名组件、多行文本框组件、电子邮件组件和评分组件等。
同时,为了方便教师操作,在本次优化版本中,我们特别支持批量设置选项。老师可以通过回车换行区分操作选项,效率提升100%↓
除了我们系统提供的组件外,我们还支持机构定义自己的组件,创建自己的组件库。
比如一些机构需要采集的个性化信息,可以通过构建组件生成专属组件,然后管理员和教师可以快速调用组织自身的组件生成表单,实现个性化服务。↓
...
关于后续的表格功能,我们以后会在小程序中更多地方支持参考表格,比如背单词、题库等……
更*敏*感*词*将在营销工具目录中升级整合,敬请期待~
其他重要功能
1. 回答模式(新编辑器)支持插入公式
最新的小程序版本支持在问题词干、选项和答案解析中插入公式。(目前不支持填空题和在答案中插入公式)
2. 支持未自动评分的评估问题
在添加新的评估题时,您可以选择“不使用智能评估”输入文本内容(包括小语种)供学生跟随,但需要管理员手动分配分数。
3. 支持在一个章节中插入多个评估问题
1. 增加管理员评论记录页面
为方便机构管理课程管理员,了解管理员的评论和工作状态,新增管理员评论记录页面。↓
2. 课程结业证书可由管理员在后台手动生成
满足结业证书统一颁发场景,让颁发更有仪式感。↓
1. 发现页面和学生签到页面可以分享到朋友圈(仅限安卓)
2. 视频支持循环播放和投屏(仅限安卓)
暂时只支持。主题描述页面上的视频使用了投屏和循环播放功能。↓
3.素材中心支持二级文件夹(课程主题文件保存到素材中心时可以选择文件夹)
使管理员更容易在素材中心对资源进行分类,并支持二级文件夹。同时,在将课程主题中的文件保存到素材中心时,也支持文件夹的选择。
4.积分商城支持搜索学生和导出学生积分
...
以上所有功能都是实时的!欢迎各位老师第一次使用。(小程序要求6.2及以上)
体验过程中,如果您有好的想法和建议,请随时联系资深运营顾问,为您连线~我们将继续开发更多实用、炫酷、超棒的功能,敬请期待~
鲸鱼冲
在这里,启动您的品牌特定小程序。
解决方案:# 六、自动采集事件的预置属性
自动采集
Android SDK 支持自动采集 事件,包括安装、启动、关闭等。
一、自动采集简介
TA系统提供了自动采集数据的接口,您可以根据自己的业务需求选择需要自动采集的数据。
当前支持的自动采集 事件类型有:
APP安装,记录APP安装日志APP启动,包括打开APP和从后台唤醒APP,关闭APP,包括关闭APP和调用到后台,采集启动时间用户浏览页面(Activity)在APP用户点击APP中的控件 记录APP崩溃时的崩溃信息
接下来详细介绍每种数据的采集方法
二、开启自动采集
您可以调用 enableAutoTrack 开启自动采集 功能:
List eventTypeList = new ArrayList();
eventTypeList.add(ThinkingAnalyticsSDK.AutoTrackEventType.APP_INSTALL); //APP安装事件
eventTypeList.add(ThinkingAnalyticsSDK.AutoTrackEventType.APP_START); //APP启动事件
eventTypeList.add(ThinkingAnalyticsSDK.AutoTrackEventType.APP_END); //APP关闭事件
eventTypeList.add(ThinkingAnalyticsSDK.AutoTrackEventType.APP_VIEW_SCREEN); //APP浏览页面事件
eventTypeList.add(ThinkingAnalyticsSDK.AutoTrackEventType.APP_CLICK); //APP点击控件事件
eventTypeList.add(ThinkingAnalyticsSDK.AutoTrackEventType.APP_CRASH); //APP崩溃事件
//开启自动采集事件
ThinkingAnalyticsSDK.sharedInstance(this, TA_APP_ID).enableAutoTrack(eventTypeList);
暗示
如果需要采集控制点击事件或者Fragment浏览事件,需要集成.
三、自动采集事件详情3.1 APP安装事件
APP安装事件会记录APP的实际安装情况,并在APP启动时上报。事件触发时间为APP安装后首次启动的时间。APP升级不会触发安装事件,删除重装APP后会上报安装事件。
3.2 APP启动事件
APP启动事件会在用户打开APP或从后台唤醒APP时触发。详细事件描述如下:
true
3.3 APP关闭事件
当用户关闭APP或将APP转移到后台时,会触发APP关闭事件。详细事件描述如下:
3.4 APP浏览页面事件
APP浏览页面事件会在用户浏览页面(Activity)时触发浏览页面事件。详细事件描述如下:
3.4.1 启用自动采集片段页面查看事件
对于android.support.v4.app.Fragment的fragment,可以使用以下方法自动实现采集页面浏览事件:
SDK初始化后,调用如下方法启动Fragment的自动采集功能
ThinkingAnalyticsSDK.sharedInstance(this, TA_APP_ID).trackFragmentAppViewScreen();
对于android.app.Fragment的Fragment,可以通过以下方法自行调用页面浏览事件:
ThinkingAnalyticsSDK.sharedInstance(this, TA_APP_ID).trackViewScreen(targetFragment);
3.4.2 自定义页面浏览事件的属性对于Activity的页面浏览事件,可以通过实现接口ScreenAutoTracker来添加属性。通过覆盖以下两种方法,可以为页面浏览事件添加页面 URL 信息,以及其他自定义属性:
public class MainActivity extends AppCompatActivity implements ScreenAutoTracker {
private Context mContext;
@Override
public String getScreenUrl() {
return "thinkingdata://page/main";
}
@Override
public JSONObject getTrackProperties() throws JSONException {
JSONObject jsonObject = new JSONObject();
jsonObject.put("param1", "ABCD");
jsonObject.put("param2", "thinkingdata");
return jsonObject;
}
}
其中`getScreenUrl`的返回值将作为该`Activity`的 URL Schema,当触发该页面的浏览事件时,将会加入预置属性`#url`,取值即为当前页面的 URL Schema;同时 SDK 会取跳转前页面的 URL Schema,如果能取到则会加入到预置属性`#referrer`中则为前向地址。
`getTrackProperties`的返回值是该页面的浏览事件的自定义属性,将会自动加入到该页面的浏览事件中
对于Fragment的页面浏览事件,我们提供了两种添加属性的方式
@ThinkingDataFragmentTitle(title = "myFragment")
public class ListViewFragment extends BaseFragment {
// your fragment implementations
}
@Override
public JSONObject getTrackProperties() {
try {
JSONObject properties = new JSONObject();
properties.put("#title", "RecyclerViewFragment");
return properties;
} catch (JSONException e) {
// ignore
}
return null;
}
3.5 APP控件点击事件
APP控件点击事件会在用户点击控件(视图)时触发
对于页面View的点击事件,有几种方法可以设置更多的属性来扩展其解析值:
3.5.1 自定义控件 ID
控件的ID默认使用android:id。如果无法获取该属性,或者想自定义控件ID,可以使用以下方法覆盖#element_id属性
ThinkingAnalyticsSDK.sharedInstance(this, TA_APP_ID).setViewID(view,viewID);
对于 Dialog,您可以使用以下方法:
//android.app.Dialog
ThinkingAnalyticsSDK.sharedInstance(this, TA_APP_ID).setViewID(view,viewID);
或者
//android.support.v7.app.AlertDialog
ThinkingAnalyticsSDK.sharedInstance(this, TA_APP_ID).setViewID(view,viewID);
参数view是需要设置控件ID的视图,参数viewID是设置的控件ID。上传控件的点击事件时,#element_id的值就是这里传入的值
3.5.2 自定义控件点击事件的属性
您可以通过以下方法为控件(视图)的点击事件添加自定义属性:
ThinkingAnalyticsSDK.sharedInstance(this, TA_APP_ID).setViewProperties(view,properties);
参数视图是需要设置自定义属性的视图,类型为JSONObject的参数属性是设置的自定义属性。当控件的点击事件上传时,会添加这些属性。
另外,对于ExpandableListView、ListView、GridView,还可以通过Adapter实现接口,在item被点击时添加自定义属性。
public interface ThinkingExpandableListViewItemTrackProperties {
/**
* 增加点击 groupPosition、childPosition 处 item 时的属性
* @param groupPosition
<p>
* @param childPosition
* @return
* @throws JSONException
*/
JSONObject getThinkingChildItemTrackProperties(int groupPosition, int childPosition) throws JSONException;
/**
* 增加点击 groupPosition 处 item 时的属性
* @param groupPosition
* @return
* @throws JSONException
*/
JSONObject getThinkingGroupItemTrackProperties(int groupPosition) throws JSONException;
}
</p>
public interface ThinkingAdapterViewItemTrackProperties {
/**
* 增加点击 position 处 item 时的属性
* @param position
* @return
* @throws JSONException
*/
JSONObject getThinkingItemTrackProperties(int position) throws JSONException;
}
3.5.3 给AlertDialog的点击事件添加页面(Activity)信息
对于AlertDialog的点击事件(android.app.AlertDialog和android.support.v7.app.AlertDialog),可以通过以下方法绑定它所属的页面(Activity),点击事件的该页面将被添加到点击事件中。#screen_name 和 #title 属性。
dialog.setOwnerActivity(targetActivity);
builder.show().setOwnerActivity(activity);
3.5.4 通过注解@ThinkingDataTrackViewOnClick上传控件点击事件
如果你使用 android:onclick 给控件(视图)添加点击事件,可以在调用方法中添加注解@ThinkingDataTrackViewOnClick。调用方法执行时,SDK会上传控件点击事件。
@ThinkingDataTrackViewOnClick
public void buttonOnClick(View v){}
如果调用buttonOnClick方法,会上传控件点击事件
3.6 APP崩溃事件
当APP发生未捕获的异常时,会上报APP崩溃事件
四、忽略自动采集 事件
您可以通过以下方式忽略页面或控件的自动 采集 事件
4.1 忽略页面的自动采集 事件
对于某些页面(Activity),如果不想自动传输采集事件(包括页面浏览和控件点击事件),可以通过以下方法忽略:
//单页面的忽略
ThinkingAnalyticsSDK.sharedInstance(this, TA_APP_ID).ignoreAutoTrackActivity(MainActivity.class);
//多页面的忽略
List classList = new ArrayList();
classList.add(MainActivity.class);
ThinkingAnalyticsSDK.sharedInstance(this, TA_APP_ID).ignoreAutoTrackActivities(classList);
也可以在Activity或Fragment前添加注解@ThinkingDataIgnoreTrackAppViewScreen,以忽略Activity或Fragment的页面浏览事件
//忽略 TestActivity 的页面浏览事件
@ThinkingDataIgnoreTrackAppViewScreen
public class TestActivity extends AppCompatActivity {
...
}
在Activity前添加注解@ThinkingDataIgnoreTrackAppViewScreenAndAppClick,可以忽略一个Activity的页面浏览事件和页面下控件的点击事件
//忽略 TestActivity 的页面浏览事件与该页面下的控件点击事件
@ThinkingDataIgnoreTrackAppViewScreenAndAppClick
public class TestActivity extends AppCompatActivity {
...
}
4.2 忽略某类控件的点击事件
如果需要忽略某类控件的点击事件,可以使用以下方法忽略
ThinkingAnalyticsSDK.sharedInstance(this, TA_APP_ID).ignoreViewType(ignoredClass);
4.3 忽略一个元素的点击事件(视图)
如果要忽略某个元素(View)的点击事件,可以使用下面的方法忽略
ThinkingAnalyticsSDK.sharedInstance(this, TA_APP_ID).ignoreView(targetView);
五、使用注解快速设置事件
如果需要监控方法的调用次数,或者方法调用后需要上传事件,可以使用注解@ThinkingDataTrackEvent快速设置需要上传的事件。需要注意的是,属性不能传入变量,所以只适合简单的上传。事件
//使用注解
@ThinkingDataTrackEvent(eventName = "event_name", properties = "{\"paramString\":\"value\",\"paramNumber\":123,\"paramBoolean\":true}")
public void fun(){}
此时,如果调用fun方法,将上传一个名为event_name的事件,其属性为“paramString”:“value”,“paramNumber”:123和“paramBoolean”:true
六、自动采集事件的预设属性
以下预设属性对于每个自动 采集 事件都是唯一的
属性名称
中文名
财产种类
阐明
#resume_from_background
是否从后台唤醒
文本
指示APP是打开还是从后台唤醒。值为true从后台唤醒,false直接打开。
属性名称
中文名
财产种类
阐明
#期间
事件持续时间
数值
表示APP访问的时长(从开始到结束),以秒为单位
属性名称
中文名
财产种类
阐明
#标题
页面标题
文本
属于控制
活动
的标题
活动
的
标题
财产的价值
#屏幕名称
页面名称
文本
属于控制
活动
包名.classname 的
#网址
页面地址
文本
当前页面的地址,需要调用
获取屏幕网址
设置网址
#推荐人
转发地址
文本
跳转前的页面地址,跳转前需要调用的页面
获取屏幕网址
设置网址
属性名称
中文名
财产种类
阐明
#标题
页面标题
文本
属于控制
活动
的标题
活动
的
标题
财产的价值
#屏幕名称
页面名称
文本
属于控制
活动
包名.classname 的
#element_id
元素标识
文本
控件的ID,默认使用
机器人:*敏*感*词*
, 可调用
设置视图ID
进行设置
#element_type
元素类型
文本
控制类型
#element_selector
元素选择器
文本
用于控制
视图路径
拼接
#element_position
元素位置
文本
控件的位置信息,当控件存在时
位置
属性只会在
#element_content
元素内容
文本
控件上的内容
属性名称
中文名
财产种类
阐明
#app_crashed_reason
异常信息
文本
字符类型,记录崩溃时的堆栈跟踪
七、集成自动采集功能插件(可选)
暗示
只有在需要启用控件点击事件和Fragment页面查看事件时才需要集成该插件。
apply plugin: 'cn.thinkingdata.android'
buildscript {
repositories {
google()
jcenter()
}
dependencies {
classpath 'cn.thinkingdata.android:android-gradle-plugin2:1.0.5'
}
}
插件相关参数可以在项目build.gradle文件中配置
apply plugin: 'cn.thinkingdata.android'
android {
}
ThinkingAnalytics {
debug = true
disableJar = true
exclude = []
excludeSensitive = []
}
如果要打开编译日志,可以设置debug = true,默认为false
如果要禁止扫描jar中的类,可以设置disableJar = true,默认为false
如果不想扫描某个路径下的类,可以设置 exclude = ['cn.thinkingdata.android','android.support']
从插件版本V1.0.5开始,支持对配置敏感属性(如AndroidID)进行代码隔离,可通过设置excludeSensitive = ['AndroidID']进行配置,该功能需要支持主 SDK 版本 V2.8.1 及以上。