Swift — (1)IBeacon 定位器 簡單介紹,外加本地通知通知

Lin
Lin
Sep 6, 2018 · 6 min read

他是蘋果所定義規範,蘋果有公開所有細節,蘋果產品一定有支援IBeacon Android手機也可以用

IBeacon可能使用的情境,他是拿來做室內定位器使用,IBeacon其實是一個定位器,他本身會廣播一個特殊格式內容,這特殊格式內容被手機收到之後,手機可以識別他,你是某某定位器,或者可以透過一些演算法,大概知道我的手機跟他距離為何,他只是廣播自己某個識別代碼,廣播這些東西出來之後,手機也只是收到這些東西,手機根本不可能拿到什麼促銷訊息,手機透過這些識別代碼,我現在靠近某一個IBeacon,我現在靠近某一些店,比如說我靠近7–11,當我知道我靠近他的時候,App上網去抓促銷訊息下來,他是作為定位之用,他本身不給資料,是定位之用,所以他用到是corelocation framework,以IBeacon來說他的使用情境,比如說我今天可能是一間店,甚至於連鎖店,我就很適合用IBeacon

舉例全家在各間店安裝IBeacon,然後鼓勵使用者用他們app,他可能會在門口放一個IBeacon,這IBeacon會發射一些無線訊號,以IBeacon來說他的無線訊號的廣播距離可以到達50米左右,他其實也是BLE,但他可到50米,因為他跟一般BLE不一樣,BLE我收到廣播,其實也可能超過30米,或者是40米,或50米,可是我收的到廣播,跟有沒有辦法跟他連上是兩回事,但IBeacon不一樣,IBeacon只廣播,我就廣播我的,然後你根本不用連上我,所以有你要訊息在廣播已經有了,所以IBeacon有機會可以讓他距離更遠,我在門口放一顆IBeacon之後,任何的使用者只要經過,他的app在背景就會收到,他靠近便利商店了,如果我是全家會員,我有裝全家的app,app就會在背景偵測到我靠近便利商店了,我的app在背景會被叫醒,然後他就會上網去抓促銷訊息,全家在這方面佈局已經很完整了,

IBeacon他只會廣播自己識別資訊,它的識別資訊包含以下這些

  1. ProximityUUID -他是一個完整長度的UUID,這個UUID可以讓我們識別這個IBeacon是不是我們要找的

舉例:假設我是便利商店主管,我現在要佈建全省便利商店IBeacon,這時候我會定義一個UUID出來,用很多工具或軟體可以幫我們隨機產出,我們產出一個UUID之後,全省大蓋有2000家店,每家店裝5顆IBeacon,就有一萬顆IBeacon,我就會通令這一萬顆IBeacon我全部用同一個UUID,都是用我指定的UUID,對於我們的app來說,我們app去監聽,我是否靠近某個IBeacon,我就去監聽這個UUID,我就會知道我現在靠近全家便利商店了

2.Major-是一個16bit長的unsigned數字(e.g 0x0001)這Major用途是,我是否是在某一個特定場域全家便利商店,因為ProximityUUID大家都一樣,但假設中壢店的 0x0001 台中店是 0x0002 等等

3.Minor-是一個16bit長的unsigned數字(e.g 0x0001),這可以更近一步,可以辨認我現在這間店裡面,或在這個場域裡面什麼位置,我今天如果在熟食區也許在0x0001,我今天如果在飲料區也許在0x0002

在位置隱私授權在使用IBeacon我都會使用always權限,因為IBeacon優勢在於我們app都會在背景,於是我偵測在這個IBeacon,我還是可以被叫醒,這是他最有魅力的功能

要求always權限

到info加入一些聲明位置授權字串,這樣才是把alway權限拿到手

接下來加一些IBeacon相關資源

他除了這基本型以外,他還有其他建構式

if state == .inside {

let message = “Iphone is inside the region\(region.identifier)”

}else {

let message = “Iphone is outide the region\(region.identifier)”

}

這兩個methods我打算用本地通知跳出來

本地推播分成新舊兩套會是以ios10為分點,蘋果10以後,推出usernotifications,在10以前都是用UIKit底下uilocalnotification,需獲得使用者授權

如果我們想要知道User與Ibeacon距離有多遠,CoreLocation就有一個機制,他可以幫我們做距離測量

接下來回有一個protocol methods 回報測量結果

    Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
    Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
    Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade