资源预下载和本地通知.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": "听力"
                }
            ]
        }
    ],
}