【高效日程管理】基于iOS快捷指令自动化,这是一个记录长期目标、统计专注时长、记录健康数据(需要智能手环、手表)、并生成每日报告与自我总结的高效日程管理方式

您所在的位置:网站首页 ios快捷指令自动签到怎么关闭 【高效日程管理】基于iOS快捷指令自动化,这是一个记录长期目标、统计专注时长、记录健康数据(需要智能手环、手表)、并生成每日报告与自我总结的高效日程管理方式

【高效日程管理】基于iOS快捷指令自动化,这是一个记录长期目标、统计专注时长、记录健康数据(需要智能手环、手表)、并生成每日报告与自我总结的高效日程管理方式

#【高效日程管理】基于iOS快捷指令自动化,这是一个记录长期目标、统计专注时长、记录健康数据(需要智能手环、手表)、并生成每日报告与自我总结的高效日程管理方式| 来源: 网络整理| 查看: 265

核心功能:

 

1.记录专注时长:分为学霸模式和普通模式,又有正计时和倒计时两种方式。学霸模式下禁止离开计时页面,否则算您结束任务或放弃任务。普通模式下可以离开计时页面,但结束后要进行签到。并且在您进行体能训练期间会自动统计运动时间并算入到专注时长,专注时长会统计到您的日历和每日总结报告中,方便进行每日复盘。(通过日历的分享与订阅可以让别人知晓您的专注时长与日程安排,后期我会出一个与好友专注时长排名的功能以及基于苹果的FaceTime进行最多32人的自习室功能)

2.记录长期目标:您可以打开您的提醒事项app来设置长期任务并并进行旗标,这样就可以追溯任务进度和完成情况。同样您可以记录之前的日程,可以选择是否归为专注时长,方便后期进行复盘总结,直观看到您今天的安排。

3.同步提醒事项:您可以在提醒事项中提前安排行程来进行是否完成管理,您设置的行程或者任务会同步到日历中并标注是否完成以及延期多久完成,或者是记录您想买的东西以及想干的事情的完成情况到日历app的全天日程。后期我会出一个课程表同步到日历app的功能,并且导入大学课本的pdf和自动导航路线功能,这样您的日历会更直观与全面。

4.生成每日报告:在您睡觉前会自动生成一个每日报告到您的备忘录,记录您今天的健康数据和专注时长,健康数据包括您的起床与睡觉时间、睡眠时长、静息心率、饮水量、消耗热量和步数等等等(需要智能手表),专注时长包括您今天的专注任务并统计您所得到的番茄数量(20分钟专注时长为一个番茄),并可以写一段话对今天进行总结,到后期我会做一个周报告和月度报告方便您进行自我管理与目标设定。

获取方式: 第一步:在appstore下载scriptable(搜素或长按链接到默认浏览器safari打开)  

‎Scriptable on the App Store

(如果有iPad需要在iPad上也下载)

第二步:打开scriptable,右上角添加代码,复制下述代码,再点击左下角修改名字为“番茄任务” events = await CalendarEvent.today() var found = false var count = 0 var m_dict = { "time":0,/// "tomato":0, "detail":{} } var reg = /\d+/ var allDayevent = null var cal = null for (e of events) { console.log(e.title) if(e.title.indexOf("⏰") != -1 || e.title.indexOf("♨️") != -1) { //console.log(e.title) e.remove() } if(e.title.indexOf("🍅") != -1 ) { cal = e.calendar num = parseInt(reg.exec(e.notes)) minute = (e.endDate-e.startDate)/1000/60 m_dict["time"] += minute //m_dict["tomato"] += num if(!m_dict["detail"][e.title]) { m_dict["detail"][e.title] = minute } else { m_dict["detail"][e.title]+= minute } //console.log(e.title+":" + num + "," + minute) } if(e.title=="🌈今日番茄统计") { found = true allDayevent=e } } if(!found) { allDayevent = new CalendarEvent() allDayevent.title = "🌈今日番茄统计" allDayevent.isAllDay = true //newEvent.save() } console.log(m_dict) var str = "" str+= "今日专注时长:"+m_dict["time"]+"min\n" tomato = Math.trunc(m_dict["time"]/20) str+= "获得番茄数:"+tomato+"个🍅\n" str+= "详情🔎:"+"\n" for(item in m_dict["detail"]) { str+=item+":"+m_dict["detail"][item]+"min\n" //console.log(item) } console.log("\n"+str) allDayevent.notes = str if(cal) { allDayevent.calendar= cal allDayevent.save() } Script.complete() 第三步:右上角再次添加代码,复制下述代码,再点击左下角修改名字为“目标进度” var parameter = args.shortcutParameter.split("\n") console.log(parameter) const separate = "-------" var reminders = await Reminder.allIncomplete() var title = parameter[0] var com_num = parseInt(parameter[1]) var goal_num = parseInt(parameter[2]) var new_note = " " for(reminder of reminders) { //if(reminder.priority>0) { console.log(reminder.title) var note = reminder.notes if (reminder.title == title) { //已经设立过目标,需要找到分割线 if(!goal_num) { var list_obj = note.split(separate) note = list_obj[0].replace(/^\s+|\s+$/g,'') list_obj = list_obj[1].replace(/^\s+|\s+$/g,'').split("\n") var reg = /\d+/ for(let i = 0;i < list_obj.length;i++) { if(list_obj[i].indexOf("目标")!=-1) { goal_num = parseInt(reg.exec(list_obj[i])) break; } } } if(com_num < goal_num) reminder.isCompleted = false else reminder.isCompleted = true new_note = generate_str(goal_num,com_num) if(note) reminder.notes = note + "\n" + new_note else reminder.notes = new_note reminder.save() console.log(reminder.title+ " " +reminder.calendar.title+" 备注:\n" +reminder.notes) } } } Script.setShortcutOutput(new_note) Script.complete() function generate_str(goal_num,com_num) { var goal_str = "⭐️目标---" + goal_num + "\n" var com_str = "✅完成---" + com_num + "\n" //var per_str = "✅比例---" + Math.trunc(100*com_num/goal_num) + "%\n" var percent = Math.trunc(100*com_num/goal_num) var ten = Math.floor(percent/10) var one = percent%10 var progress_bar = "" var i = 0 for(;i < ten;i++) progress_bar+="🌕" if(ie.notes != null && e.notes.includes("[Reminder]")) for(let event of events_created){ //console.warn(event.notes) let reg = /(\[Reminder\])\s([A-Z0-9\-]*)/ let r = event.notes.match(reg) //if(r) console.log(r[2]) if(!reminders_id_set.has(r[2])) { event.remove() } } for (const reminder of reminders) { //reminder的标识符 const targetNote = `[Reminder] ${reminder.identifier}` const [targetEvent] = events.filter(e => e.notes != null && e.notes.includes(targetNote))//过滤重复的reminder if(!m_dict[reminder.calendar.title]) { console.warn("找不到日历"+ reminder.calendar.title) continue } if (targetEvent) { //console.log(`找到已经创建的事项 ${reminder.title}`) updateEvent(targetEvent, reminder) } else { console.warn(`创建事项 ${reminder.title} 到 ${reminder.calendar.title}`) const newEvent = new CalendarEvent() newEvent.notes = targetNote + "\n" + reminder.notes//要加入备注 updateEvent(newEvent, reminder) } } Script.complete() function updateEvent(event, reminder) { event.title = `${reminder.title}` cal_name = reminder.calendar.title cal = m_dict[cal_name] event.calendar = cal //console.warn(event.calendar.title) //已完成事项 if(reminder.isCompleted) { event.title = `✅${reminder.title}` event.isAllDay = true event.startDate = reminder.dueDate // event.endDate=reminder.dueDate // var ending = new Date(reminder.completionDate) // ending.setHours(ending.getHours()+1) // event.endDate = ending var period = (reminder.dueDate-reminder.completionDate)/1000/3600/24 period = period.toFixed(1) if(period < 0) { period = -period event.location = " 延期" + period + "天完成" } else if (period == 0) { event.location = " 准时完成" } else { event.location = " 提前" + period + "天完成" } } //未完成事项 else{ const nowtime = new Date() var period = (reminder.dueDate-nowtime)/1000/3600/24 period = period.toFixed(1) //console.log(reminder.title+(period)) if(period < 0) { //待办顺延 event.location = " 延期" + (-period) + "天" //如果不是在同一天,设置为全天事项 if(reminder.dueDate.getDate() != nowtime.getDate()) { event.title = `❌${reminder.title}` event.startDate = nowtime event.endDate = nowtime event.isAllDay = true } //在同一天的保持原来的时间 else { event.title = `⭕️${reminder.title}` event.isAllDay = false event.startDate = reminder.dueDate var ending = new Date(reminder.dueDate) ending.setHours(ending.getHours()+1) event.endDate = ending } console.log(`【${reminder.title}】待办顺延${-period}天` ) } else { event.title = `⭕️${reminder.title}` event.isAllDay = false event.location = "还剩" + period + "天" event.startDate = reminder.dueDate var ending = new Date(reminder.dueDate) ending.setHours(ending.getHours()+1) event.endDate = ending } } if(!reminder.dueDateIncludesTime) event.isAllDay = true event.save() }

5f4d5ff94eaa4b798849dee1bb1673e7.png

第五步:确定三个代码添加成功后分别长按3个链接打开快捷指令

记录

番茄时钟

长期目标

​​​​​​​加强版自动化

番茄正计时

番茄倒计时

(注: 其中只有前两个快捷指令“记录”和“番茄时钟”需要通过小组件添加到桌面上来使用,剩下的快捷指令不需要使用,但是要保存到你的快捷指令App中)

第六步:更具您的情况选择添加快捷指令(只能选择一个) 1.我有Apple Watch并且下载了autosleep

每日报告自动化

运动自动化打卡

2.我有Apple Watch但是没有下载autosleep(建议下载可以检测午睡,某宝超便宜)

(待更新,私信我)

3.我有其他智能手表

(待更新,私信我)

4.我没有任何智能手表

每日报告无手表版

----------------------------------------------------------------------------------

第七步:设置自动化

1.设置体能训练自动化(需要Apple Watch): 当我开始或结束体能训练时运行“运动自动化打卡”快捷指令, 需要关闭运行前询问

2.设置离开地点自动化(蜂窝版Apple Watch和没有Apple Watch不需要设置): 当我离开某某游泳馆时运行“运动自动化打卡”快捷指令

3.设置提醒事项与日历同步自动化(日历和提醒事项需要有相同的列表): 当我打开日历或提醒事项中的任意一个app时,运行“同步”脚本

4.每日报告自动化: 当每天10:30时运行“每日报告自动化”快捷指令(时间随便设置,最好是睡前)

第八步: 部署环境,确保所有功能正常运行

1. 在日历App里添加叫“番茄日历”到列表

2. 在备忘录里添加叫“每日总结”列表

3. 提醒事项与日历app必须有相同的列表才能同步,没有相同的列表是无法做到同步的

4. 建议所有的快捷指令中,只把“记录”快捷指令与“番茄时钟”快捷指令通过小组件放到桌面上使用,可根据需求修改

5.最后,有问题请留言,我会去完善



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3