Day30-终於完赛啦之用iOS本地推播来庆祝一下!!

很难得,有一件事情能持续以恒地坚持一个月(除了变胖这件事以外),最後的分享就来讲讲本地推播吧:

本地推播:

要执行本地推播,必须跟使用者取得权限,我想要让App一开始运行的时候就跟使用者要权限,所以我写在这个开始运行时会呼叫的方法内

首先在Appdelegate.swift内找到这个方法:func application(_:didFinishLaunchingWithOptions),这个方法的定义可以参考官网的开发者文档说明:
https://ithelp.ithome.com.tw/upload/images/20201015/20129144k22eKnMxhd.png


在这个方法内,先实例化一个通知中心,并且向使用者要权限,如果成功,则呼叫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设定的时间内跳到桌面,就会在第十秒的时候跳出通知:
https://ithelp.ithome.com.tw/upload/images/20201015/20129144HHLPY9N1U8.png


<<:  如何修复“硬碟仅显示一半容量”

>>:  【Day 30】情境模拟:专案协作,我都交设计稿啦 ! Delay 跟我有关系 !?

Day 26 : Linux - 档案or目录的权限该怎麽看?又该如何做更改?

如标题,今天想和大家聊聊权限这东西 权限在Linux是个非常非常重要的东西,如果你一直被termin...

Day 15 Chatbot integration- 韩文翻译机器人

Chatbot integration- 韩文翻译机器人 这篇会针对韩文翻译机器人的功能,整合 Az...

Flutter基础介绍与实作-Day13 Onboarding、Login、Sign Up范例实作(1)

今天我们就利用我们之前所学的来做一个和旅游相关的Onboarding介面,事不宜迟赶快开始吧! 我想...

D17/ 我要用的 View 没有支援 Compose 怎麽办? - AndroidView

今天大概会聊到的范围 Android View 前两天来回进出了公司楼下的 7-11 两三次,每次...

未来狂想:工业技术发展

人的科技文明发展始终来自於人性 伴随着整体世界的技术进步与科技的发展,人们的生活越来越便利且越来越舒...