【ios】提醒事項與日曆同步升級版可快速新建提醒不用設定時間

文章推薦指數: 80 %
投票人數:10人

在提醒事項裡新增事項,日曆裡就會同步; 設定時間也可以的; 都可以完成後顯示不同的完成圖示在loc裡; 使用方法與原版本會 ... MdEditor 【ios】提醒事項與日曆同步升級版可快速新建提醒不用設定時間 語言:CN/TW/HK 時間 2020-11-0513:02:46 osc_h49o6pt8 主題: ios flutter+小程式+後端,3個人就可開啟你的APP之路|註冊即送大疆雲臺、華為手錶!>>> 起因: 看到知乎的【真香!自動同步ios的提醒事項和日曆,顯示日打卡內容】文章,試了試,確實很方便,可以再提醒事項裡新增事項,日曆就會同步時間。

小缺陷: 對於沒有設定時間的提醒事項不會同步,因為常常只是想速記一些當日的小事情,而設定時間很麻煩。

所以我修改了一下原文的指令碼。

下面的腳本里做了註釋標記,初寫程式碼,還請大家多多指教。

升級後: 可以直接新建事項–>完成,不必設定時間【new】 在提醒事項裡新增事項,日曆裡就會同步 設定時間也可以的 都可以完成後顯示不同的完成圖示在loc裡 使用方法與原版本會有一點小差別,主要體現在apple的快捷命令裡何時觸發指令碼,下面使用方法會說明【new】 使用方法: 在iphone或者ipad下載scriptable 開啟app,新建一個指令碼,將本文最後的指令碼檔案複製到裡面 開啟ios自帶的快捷指令app,點選自動化—>建立個人自動化(或者右上角的加號)—>點選【App】這裡注意設定成當關閉提醒事項app時,如圖1—>點下一步新增操作—>選【App】scriptable的剛才儲存的指令碼檔案(沒設定標題是就是unitiledscript那個檔案)—>注意在展開裡把runinapp和執行時顯示給關閉,如圖2 重要的一步!!需要在日曆裡面新增提醒事項列表名對應的日曆列表名,只需要建立想同步的列表,不想顯示在日曆上的待辦事項不需要建立列表。

例如:我的提醒事項裡有個【咩】列表,我的日曆裡就要同樣建立一個【咩】日曆(點中間下面的日曆可以新建日曆,新建一個一樣名字的就可以) 然後就可以愉快的玩耍了,開啟提醒事項後建立事項,再回到日曆裡看: 指令碼在這: vardur_month=1 conststartDate=newDate() startDate.setMonth(startDate.getMonth()-dur_month) console.log(`日曆的開始時間${ startDate.toLocaleDateString()}`) constendDate=newDate() endDate.setMonth(endDate.getMonth()+dur_month) console.log(`日曆的結束時間${ endDate.toLocaleDateString()}`) //【【【【【【【【直接找出全部的事項,因為沒有設定時間的事項老版本會被排除掉】】】】】】】】 constreminders=awaitReminder.all() console.log(`獲取${ reminders.length}條提醒事項`) varcalendar=awaitCalendar.forEvents() varm_dict={ } for(calofcalendar) { m_dict[cal.title]=cal } constevents=awaitCalendarEvent.between(startDate,endDate,calendar) console.log(`獲取${ events.length}條日曆`) for(constreminderofreminders){ consttargetNote=`[Reminder]${ reminder.identifier}` const[targetEvent]=events.filter(e=>e.notes!=null&&(e.notes.indexOf(targetNote)!=-1)) 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}`) constnewEvent=newCalendarEvent() newEvent.notes=targetNote+"\n"+reminder.notes//要加入備註 updateEvent(newEvent,reminder) } } Script.complete() functionupdateEvent(event,reminder){ //【【【【【【【【對於沒有設定時間的reminder,他與超時的還不一樣,他的duedate資料沒法直接設定,這裡我只能退而求其次了,暫時沒有找到直接修改的辦法。

】】】】】】】】 if(reminder.dueDate==null){ varmyDate=newDate(); myDate.setHours(myDate.getHours()+5); reminder.dueDate=myDate; } event.title=`${ reminder.title}` cal_name=reminder.calendar.title cal=m_dict[cal_name] event.calendar=cal if(reminder.isCompleted) { event.title=`✅${ reminder.title}` event.isAllDay=false event.startDate=reminder.completionDate varending=newDate(reminder.completionDate) ending.setHours(ending.getHours()+1) event.endDate=ending varperiod=(reminder.dueDate-reminder.completionDate)/1000/3600/24 period=period.toFixed(1) if(period<0) { period=-period event.location="延期"+period+"天完成" } elseif(period==0) { event.location="準時完成" } else { event.location="提前"+period+"天完成" } } else{ constnowtime=newDate() varperiod=(reminder.dueDate-nowtime)/1000/3600/24 period=period.toFixed(1) if(period<0) { flag=true event.location="延期"+(-period)+"天" if(reminder.dueDate.getDate()!=nowtime.getDate()) { event.title=`❌${ reminder.title}` event.startDate=nowtime event.endDate=nowtime event.isAllDay=true } else { //【【【【【【【【對於未設定具體時間的一定是超時的,所以如果是超時的就設定+5的時間】】】】】】】 event.title=`⭕️${ reminder.title}` event.isAllDay=false varnewDate=newDate() newDate.setHours(newDate.getHours()+5) event.startDate=newDate varending=newDate(newDate) 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 varending=newDate(reminder.dueDate) ending.setHours(ending.getHours()+1) event.endDate=ending } } event.save() } 「其他文章」 藏不住了,Flink未來發展的最新方向在這裡! 9個提高程式碼執行效率的小技巧! Android面試主題整理合集(一) KVM克隆VM無法網絡卡無法啟動 基於MATLAB的遠端聲控小車的系統設計與模擬 使用Xtrabackup備份與恢復資料庫 從一道面試題談談一線大廠碼農應該具備的基本能力 JavaScript基礎:Iterator概念及用法 [!]Gradlethrewanerrorwhiledownloadingartifactsfromthenetwork.Retryingtodownload...Runn 物理伺服器多塊硬碟故障 設定id從1開始自增 Kubernetes:55---訪問pod資源資料(KubernetesAPI:藉助secret從pod內部與API伺服器進行互動(ca.crt、namespace、token)) Java多執行緒中start()和run()的區別 Linux系統inodes資源耗盡,如何解決? springcloud系列教程第八篇-修改服務名稱及獲取註冊中心註冊者的資訊 2020總結 2019年3月計算機二級等級考試報名時間彙總及報名流程 自學第二十九天 JY32Mysql02的安裝 Serverless在大規模資料處理的實踐 「ios」 iOS全面理解Nullability即nil,Nil,NULL,NSNull,kCFNulL及空值修飾符 iOS內購-訂閱型之切換AppleID的處理 iOS應用提審與釋出流程 iOS底層原理-探尋KVO本質 CraigFederighi回信解釋為什麼蘋果iOS的自動更新經常晚幾周才出現 iOS16竟然長這樣?這幾款iPhone要涼了 老司機iOS週報#197|2022-03-28 iOS-Swift獨孤九劍:十三、面向協議程式設計 iOS元件化相關總結 iOS-CocoaPods的原理及Podfile.lock問題



請為這篇文章評分?