资源预下载和本地通知.md
4.8 KB
资源预下载
- 课表信息需要缓存在本地
- 根据课表返回的信息中的课程Id,从盒子鱼服务器获取相应的资源列表
- 在后台预下载资源
- 如果用户是在非Wifi状态下,提醒用户是否允许继续下载
- 在开始上课的时候,如果检测到还有需要下载的资源,则用正常的前台下载,不用开启后台下载。
- 如果需要上完课及时清除学生端的缓存,则需要记住学生下载的资源和相对应的课程信息(需要跟产品确认)
在线授课课表信息缓存设计
采用缓存文件
IOS端的缓存目录可以从BFECourseInfoCacheManager的
getTimeTableCacheFilePathByYear:(NSString *)year andMonth:(NSString *)month方法中读取
BFECourseInfoCacheManager的创建可以用以下抽象工厂中提供的方法
BFECourseInfoCacheManager *courseInfoCacheManager = [[BoxfishFactory getFactory] createCourseInfoCacheManager];
在线授课本地资源存储设计
IOS端拟采用数据库进行管理,数据库名暂定为OnlineTeachResource.db
课程列表: courseList.table
课程Id | 资源表名 |
---|---|
课程Id1 | list1 |
课程Id2 | list2 |
课程Id3 | list3 |
资源列表: list1.table
资源Id | 是否下载 |
---|---|
资源Id1 | true |
资源Id2 | true |
资源Id3 | false |
本地通知或者闹铃,提前通知用户打开App,准备上课
学生端课表缓存内容
{
"data": [
{
"dailyScheduleTime": [
{
"id": 338345,
"courseType": "听力",
"time": "14:00:00",
"courseId": "L3NoYXJlL3N2bi_ku4HniLHkuIPkuIog5ZCs6K-7LzAzMi5Vbml0IDMgVG9waWMgMyBXaGF0IHdvdWxkIHlvdSBsaWtlIHRvIGRyaW5rPy54bHN4"
},
{
"id": 338346,
"courseType": "听力",
"time": "15:00:00",
"courseId": "L3NoYXJlL3N2bi_ku4HniLHkuIPkuIog5ZCs6K-7LzAzMi5Vbml0IDMgVG9waWMgMyBXaGF0IHdvdWxkIHlvdSBsaWtlIHRvIGRyaW5rPy54bHN4"
},
{
"id": 338347,
"courseType": "听力",
"time": "16:00:00",
"courseId": "L3NoYXJlL3N2bi_ku4HniLHkuIPkuIog5ZCs6K-7LzAzMi5Vbml0IDMgVG9waWMgMyBXaGF0IHdvdWxkIHlvdSBsaWtlIHRvIGRyaW5rPy54bHN4"
}
],
"day": "2016-04-12"
}
]
}
教师端课表缓存信息
{
"data": [
{
"day": "2016-04-12",
"dailyScheduleTime": [
{
"slotId": 1,
"startTime": "08:00:00",
"endTime": "09:00:00",
"selected": true,
"status": 1,
"courseId": null,
"courseName": null,
"courseType": null
},
{
"slotId": 2,
"startTime": "09:00:00",
"endTime": "10:00:00",
"selected": true,
"status": 1,
"courseId": null,
"courseName": null,
"courseType": null
},
{
"slotId": 3,
"startTime": "10:00:00",
"endTime": "11:00:00",
"selected": true,
"status": 1,
"courseId": null,
"courseName": null,
"courseType": null
},
{
"slotId": 4,
"startTime": "11:00:00",
"endTime": "12:00:00",
"selected": true,
"status": 1,
"courseId": null,
"courseName": null,
"courseType": null
},
{
"slotId": 5,
"startTime": "12:00:00",
"endTime": "13:00:00",
"selected": true,
"status": 1,
"courseId": null,
"courseName": null,
"courseType": null
},
{
"slotId": 9,
"startTime": "16:00:00",
"endTime": "17:00:00",
"selected": true,
"status": 2,
"courseId": 338342,
"courseName": "测试1",
"courseType": "听力"
}
]
}
],
}