很难得,有一件事情能持续以恒地坚持一个月(除了变胖这件事以外),最後的分享就来讲讲本地推播吧:
要执行本地推播,必须跟使用者取得权限,我想要让App一开始运行的时候就跟使用者要权限,所以我写在这个开始运行时会呼叫的方法内
首先在Appdelegate.swift
内找到这个方法:func application(_:didFinishLaunchingWithOptions)
,这个方法的定义可以参考官网的开发者文档说明:
在这个方法内,先实例化一个通知中心,并且向使用者要权限,如果成功,则呼叫sendMyMessage()
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
let center = UNUserNotificationCenter.current()
center.requestAuthorization(options: [.alert,.sound,.badge]) { (success, error) in
if success
{
self.sendMyMessage()
}else
{
print("在",#function,"发生了错误,错误讯息为:",error?.localizedDescription)
}
}
return true
}
上述有提到获取使用者权限成功後会呼叫sendMyMessage()
,现在来实作这个方法的内容,由於我在跟使用者要全限时,我要了文字、声音、图示通知这三种权限,所以我在推播的内容也要输入这些内容:
func sendMyMessage()
{
let content = UNMutableNotificationContent()
content.title = "今天是铁人赛第三十天"
content.body = "我终於挑战成功啦!!"
content.badge = 999
content.sound = UNNotificationSound.default
let trigger = UNTimeIntervalNotificationTrigger(timeInterval: 10, repeats: false)
let request = UNNotificationRequest(identifier: "weakJimmy", content: content, trigger: trigger)
let center = UNUserNotificationCenter.current()
center.add(request)
}
现在只要打开App之後,在trigger
设定的时间内跳到桌面,就会在第十秒的时候跳出通知:
>>: 【Day 30】情境模拟:专案协作,我都交设计稿啦 ! Delay 跟我有关系 !?
如标题,今天想和大家聊聊权限这东西 权限在Linux是个非常非常重要的东西,如果你一直被termin...
Chatbot integration- 韩文翻译机器人 这篇会针对韩文翻译机器人的功能,整合 Az...
今天我们就利用我们之前所学的来做一个和旅游相关的Onboarding介面,事不宜迟赶快开始吧! 我想...
今天大概会聊到的范围 Android View 前两天来回进出了公司楼下的 7-11 两三次,每次...
人的科技文明发展始终来自於人性 伴随着整体世界的技术进步与科技的发展,人们的生活越来越便利且越来越舒...