almost 3 years ago

想要製作設計一個,藉由設定好區域位置,當離開或是進入時,可以跳出訊息,來提示使用者切換警戒狀態。
例如:當離開家的時候,提醒開啟無人在家模式。或是回到家後,降低警戒層級,減少因為正常活動而觸發的警告。
在早期的 ios 即可使用 CLLocationManager 的電子柵欄做設計,當觸發事件時,再使用 Local Notification 提醒使用者。
這次 ios10 直接新增的一個新的 Trigger 型態「UNLocationNotificationTrigger」,讓你兩個願望一次滿足。
下面是 Apple Develope 的範例:

CLLocationCoordinate2D center = CLLocationCoordinate2DMake(37.335400, -122.009201);

CLCircularRegion* region = [[CLCircularRegion alloc] initWithCenter:center
                 radius:2000.0 identifier:@"Headquarters"];
region.notifyOnEntry = YES;
region.notifyOnExit = NO;

UNLocationNotificationTrigger* trigger = [UNLocationNotificationTrigger
                 triggerWithRegion:region repeats:NO];

再加入文字訊息,搭配上 [addNotificationRequest: withCompletionHandler:] 放入 UNUserNotificationCenter。

xcode 可以利用 GPX 檔案讓程式模擬位置。我使用 New File,選擇 GPX 類型,儲存在個好地方後,就可以在 xcode breakpoint 的那欄,使用 GPS。

遇到問題:

  1. 設定在同一個地點有 notifyOnEntry 與 notifyOnExit,當模擬位置到達時,卻同時彈出「進入」與「離開」

參考文件
https://developer.apple.com/reference/usernotifications/unlocationnotificationtrigger?language=objc

← Mac版 奇摩注音關閉一點通 UI/UX AsiaYo 好的設計準則讓你打造完美的產品體驗 →