iOS 的本地推送(swift实现)

16 篇文章 0 订阅
2 篇文章 0 订阅

以前曾经写过iOS的远程推送那时候是用OC语言实现的,现在简单的介绍一下iOS的本地推送
相比远程推送本地推送省略了麻烦的证书问题所以很简单。
一样的我们在程序的开始都需要注册推送:

 func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
        // Override point for customization after application launch.

        //注册本地推送
        if #available(iOS 8.0, *) {
            application.registerUserNotificationSettings(UIUserNotificationSettings(forTypes: [.Alert,.Badge,.Sound], categories: nil))
        } else {

        }
        return true

注册好了之后我们尝试着发送推送:

 //发送本地推送消息
    func sendLocalNotiction() {
        //创建推送UILocalNotification
        let localNotifiction = UILocalNotification()
        //推送时间30s后
        localNotifiction.fireDate = NSDate(timeIntervalSinceNow: 30)
        //时区(本地)
        localNotifiction.timeZone = NSTimeZone.systemTimeZone()
        //推送消息
        localNotifiction.alertBody = "本地推送消息\(NSDate())"
        //角标设置
        localNotifiction.applicationIconBadgeNumber = 1
        if #available(iOS 8.2, *) {
            localNotifiction.alertTitle = "本地推送测试"
        } else {
            // Fallback on earlier versions
        }
        //推送声音系统声音,也可以是bundle里面的音乐
        localNotifiction.soundName = UILocalNotificationDefaultSoundName
        //附加信息
        localNotifiction.userInfo = ["name":"句芒"]
        //添加推送
        UIApplication.sharedApplication().scheduleLocalNotification(localNotifiction)
        //取消推送
       //UIApplication.sharedApplication().cancelLocalNotification(localNotifiction)

    }

当然了能够发推送肯定也可以取消推送的,
UIApplication.sharedApplication().cancelLocalNotification(localNotifiction)
这样就可以取消推送了。
接到推送后我们一般会点击app进入前台处理推送的:

 //接收本地消息了
    func application(application: UIApplication, didReceiveLocalNotification notification: UILocalNotification) {
        //角标清零
        application.applicationIconBadgeNumber = 0
        let info = notification.userInfo as! [String:String]

        let name = info["name"]

        if #available(iOS 8.0, *) {
            let alertController = UIAlertController(title: "推送", message: "收到了推送内容用户名:\(name!)", preferredStyle: .Alert)
            alertController.addAction(UIAlertAction(title: "知道了", style: .Cancel, handler: { (alert) in

            }))
            self.window?.rootViewController!.presentViewController(alertController, animated: true, completion: nil)
        } else {
            // Fallback on earlier versions
            let alert =  UIAlertView(title: "推送", message: "收到了推送内容用户名:\(name!)", delegate: nil, cancelButtonTitle: "知道了")
            alert.show()
        }

    }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值