ios Shortcut懶人系列1 [一鍵等車]

ios12中apple把workflow內化且改名叫捷徑了,玩了一整天後發現他的功能算是很強大,感覺有很大的潛力

開始今天的主題吧 !

今天我想先來做可以一按就會傳送公車還有幾分鐘會到站的shortcut

請先準備好以下工具:

ios的裝置,一台電腦(也可以不用,但是在填寫對應URL的部分會更加方便)

成果中的路線是我平時要看的路線

(在教學中我會以這個捷徑當範本)

各位是不是發現了這個捷徑不是隨點隨看

(迷之音:開起來這麼慢不如用app)

其實這個問題算是捷徑的一個限制之一(文末會解答)

但是我們主要是要來了解怎麼從PTX抓公車的資料

並且擷取我們要的公車到站時間,在完成這個捷徑後,大家就能用同樣的原理來擷取像是新聞或是天氣等來加入自己的捷徑

在抓資料前我們要先來了解PTX

看完PTX的簡介應該能了解他其實就是能讓我們抓取各種交通工具資料的平台(有錯請更正),為了得到我們要的資料請先點API服務-->線上API說明-->

取得指定[縣市],[路線名稱]的公車預估到站資料(N1)

接著請先選取縣市並且輸入你要的公車路線名稱(以路線藍37為範本)

輸入後就會取得藍37的路線資料(建議格式選xml),BUT因為資料包含了公車來回的方向等資訊,所以我們要先過濾資料,關於過濾資料的詳細資訊請看位於頁面最頂端的

API URI Convention文件說明

在文件中提到我們可以透過在網址中加入$filter=所需的資訊,過濾出我們要的路線,因此我們要在取得路線資料的網址中輸入StopID eq '站牌代碼'

EX:https://ptx.transportdata.tw/MOTC/v2/Bus/EstimatedTimeOfArrival/City/NewTaipei/藍37?$filter=StopID eq '128880'&format=XML

至於站牌的代碼要在沒有過濾的藍37路線的頁面按Ctrl+F搜尋站牌的名稱,一般情況下輸入後頁面應該會標示出兩處,第一處和第二處就是方向的不同(由Direction=0或1來判斷),我的確認方法是看EstimateTime的秒數除與60後的分鐘數和手機的等公車app時間是否差不多(應該有更方便的方法),確認好後去尋找路線的StopID並且輸入剛才的頁面後就能得到以下畫面

(以xml格式)

接著把所要擷取的路線url寄到自己的信箱

並照著以下圖片拉好所需的捷徑方塊

按下最上方的開始鍵(右上三角形),過一下會跳通知

接下來就大致完成了

好還要更好

有人會問為什麼有時會收到沒有數字的通知呢

原因是公車未發車

如果仔細閱讀Convention文件,會發現在文件中有提到可能會沒有EstimateTime的時機有這些

知道原因後我們便要提取StopStatus的資料

提取的方法同EstimateTime

本人比較懶所以只有去判斷是否發車,各位可以自行修改

修改後的版本如下

Q&A

問題一

最一開始的[一鍵等車]圖示,是怎麼做成的

先畫好自己要的icon(也可以用內建的)

加到主畫面

至於icon的設計各位可以自行上網找svg檔用inscape編輯好後再加到圖示

以下為影片中的icon圖片

問題二

為甚麼會開這麼慢呢

原因在如果有仔細看我的捷徑內容,我是直接抓網頁的內容所以會開啟瀏覽器,

所以想要開快點的朋友可以去研究用另外一種方式來取得網頁內容(可能會再寫教學)

問題三

為什麼我會知道要怎麼抓api呢

答案是先去reddit搜尋shortcut或是google[捷徑社區]

加入一些大神的腳本,模仿它,不懂的部分以去reddit問,或是google

最重要的就是不斷的嘗試就能成功抓取

至於要過濾文字的部分可以去google[正則表達句]

留言