質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
iOS 9

iOS 9は、アップル社のモバイルOSであるiOSシリーズのバージョン。特徴として検索機能の強化、Siriの機能改良、iPad向けマルチタスクなどがあります。マルチウィンドウ機能をサポートし、iPad向けマルチタスクもサポートされています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

0回答

1263閲覧

Geofence Region複数設定?

coredaa

総合スコア6

iOS 9

iOS 9は、アップル社のモバイルOSであるiOSシリーズのバージョン。特徴として検索機能の強化、Siriの機能改良、iPad向けマルチタスクなどがあります。マルチウィンドウ機能をサポートし、iPad向けマルチタスクもサポートされています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

0クリップ

投稿2018/08/18 02:28

Geofence Region複数設定したい。(20箇所)
CLCircularRegion.identifier別に通知を配信したい。```class ViewController: UIViewController, CLLocationManagerDelegate {
var audioPlayerInstance : AVAudioPlayer! = nil
@IBOutlet weak var myimage: UIImageView!
let locationManager: CLLocationManager = CLLocationManager()

override func viewDidLoad() {
super.viewDidLoad()
self.myimage.isHidden = true
locationManager.delegate = self
locationManager.requestAlwaysAuthorization()
locationManager.startUpdatingLocation()
locationManager.distanceFilter = 10

let geoFenceRegion:CLCircularRegion = CLCircularRegion(center: CLLocationCoordinate2DMake(33.654237, 130.693872),radius: 500.0,identifier: "TokyoTower")
locationManager.startMonitoring(for: geoFenceRegion)

let soundFilePath = Bundle.main.path(forResource: "new", ofType: "mp3")!
let sound:URL = URL(fileURLWithPath: soundFilePath)
// AVAudioPlayerのインスタンスを作成
do {
audioPlayerInstance = try AVAudioPlayer(contentsOf: sound, fileTypeHint:nil)
} catch {
print("AVAudioPlayerインスタンス作成失敗")
}
// バッファに保持していつでも再生できるようにする
audioPlayerInstance.prepareToPlay()
audioPlayerInstance.volume = 2

UNUserNotificationCenter.current().requestAuthorization(options: [.alert,.badge,.sound], completionHandler: {(success,error) in
if error != nil{
print("失敗しました")
}
else{
print("成功しました")
}
})
}

func locationManager(_ manager: CLLocationManager, didEnterRegion region: CLRegion) {
print("設定したジオフェンスに入りました。")
self.myimage.isHidden = false
audioPlayerInstance.play()

timedNotifications(inSeconds: 3) {(success) in
if success {
print("Successfully Notified")
}
}

}

func locationManager(_ manager: CLLocationManager, didExitRegion region: CLRegion) {
print("設定したジオフェンスから出ました。")
self.myimage.isHidden = true

}

func timedNotifications(inSeconds: TimeInterval, completion: @escaping (_ _Success: Bool) -> ()){
let trigger = UNTimeIntervalNotificationTrigger(timeInterval: inSeconds, repeats: false)
let content = UNMutableNotificationContent()

content.title = "浦上亭お知らせ"
content.subtitle = "本日のサービス"
content.body = "高級手羽先30%OFFでの提供!19:00まで"

let request = UNNotificationRequest(identifier: "customNotification", content: content,trigger: trigger)
UNUserNotificationCenter.current().add(request) { (error) in
if error != nil {
completion(false)

}else{
completion(true)

}
}
}
}

コード

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問