iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 16
0
Mobile Development

小菜逼學習IOS系列 第 16

監聽範圍,進入離開推播(1)-倒數16天

  • 分享至 

  • xImage
  •  

先在 info.plist 加入
要求隨時取得使用者位置的權限
必須兩個都加入
Privacy - Location When In Use Usage Description
Privacy - Location Always Usage Description

iOS 11 之前:
只需設定 Privacy — Location Always Usage Description

在AppDelegate.swift

import UserNotifications
import CoreLocation

設定 AppDelegate 去代理 CLLocationManagerDelegate

AppDelegate : CLLocationManagerDelegate

取得使用者權限的程式碼didFinishLaunchingWithOptions launchOptions,當使用者在開啟程式後就能選擇是否授權

        UNUserNotificationCenter.current().delegate = self
        locationmanager.delegate = self
        locationmanager.desiredAccuracy = kCLLocationAccuracyBestForNavigation
        locationmanager.requestAlwaysAuthorization()
        UNUserNotificationCenter.current().requestAuthorization(options: [.alert,.sound,.badge], completionHandler: {(grand , error)in
            if grand{
                print("允許")
            }else{
                print("拒絕")
            }
        })
        setupData()
        locationmanager.startUpdatingLocation()

這個 func 是為了讓前台運行應用程序時到達的通知,這樣在背景下也能接收通知喔

func userNotificationCenter(_ center: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) {
        completionHandler([.alert , .badge , .sound])
    }

為了要監控區間,那也需要隨時接收自己的位置,好讓自己有無進入那危險之地

func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
        
    }

上一篇
如何使用Swift將Json保存/寫入文件-倒數16天
下一篇
監聽範圍,進入離開推播(2)-倒數15天
系列文
小菜逼學習IOS30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言