Swift - 本地消息的推送通知(附样例)
使用UILocalNotification可以很方便的实现消息的推送功能。我们可以设置这个消息的推送时间,推送内容等。
1,推送消息的发送

--- AppDelegate.swift ---
import UIKit@UIApplicationMainclass AppDelegate: UIResponder, UIApplicationDelegate { var window: UIWindow? func application(application: UIApplication, didFinishLaunchingWithOptionsNSObject: AnyObject]?)Bool { //开启通知 let settingsUIUserNotificationSettings(forTypes:Alert,Badge,Sound], categories: nil) application.registerUserNotificationSettings(settings) return true } func applicationWillResignActive(application: UIApplication) } func applicationDidEnterBackground(application: UIApplication) } func applicationWillEnterForeground(application: UIApplication) } func applicationDidBecomeActive(application: UIApplication) } func applicationWillTerminate(application: UIApplication) }} |
--- ViewController.swift ---
import UIKitclass ViewController: UIViewController { override func viewDidLoad() super.viewDidLoad() //发送通知消息 scheduleNotification(12345); //清除所有本地推送 //UIApplication.sharedApplication().cancelAllLocalNotifications() } //发送通知消息 func scheduleNotification(itemID:Int){ //如果已存在该通知消息,则先取消 cancelNotification(itemID) //创建UILocalNotification来进行本地消息通知 let localNotificationUILocalNotification() //推送时间(设置为30秒以后) localNotification.fireDateNSDate(timeIntervalSinceNow: //时区 localNotification.timeZoneNSTimeZone.defaultTimeZone() //推送内容 localNotification.alertBody"来自hangge.com的本地消息" //声音 localNotification.soundNameUILocalNotificationDefaultSoundName //额外信息 localNotification.userInfo"ItemID":itemID] UIApplication.sharedApplication().scheduleLocalNotification(localNotification) } //取消通知消息 func cancelNotification(itemID:Int){ //通过itemID获取已有的消息推送,然后删除掉,以便重新判断 let existingNotificationself.notificationForThisItem(itemID) as UILocalNotification? if existingNotificationnil { //如果existingNotification不为nil,就取消消息推送 UIApplication.sharedApplication().cancelLocalNotification(existingNotification!) } } //通过遍历所有消息推送,通过itemid的对比,返回UIlocalNotification func notificationForThisItem(itemID:Int)-> UILocalNotification? let allNotificationsUIApplication.sharedApplication().scheduledLocalNotifications for notification in allNotifications! let infoas!String:Int] let number"ItemID"] if numbernil && return notification as UILocalNotification } } return nil } override func didReceiveMemoryWarning() super.didReceiveMemoryWarning() }} |
2,点击推送消息的响应
application(application: UIApplication, didReceiveLocalNotification
notification: UILocalNotification)代理方法。

func application(application: UIApplication, didReceiveLocalNotificationUILocalNotification) //设定Badge数目 UIApplication.sharedApplication().applicationIconBadgeNumber let infoas!String:Int] let number"ItemID"] let alertControllerUIAlertController(title: "本地通知", message: "消息内容:\(notification.alertBody)用户数据:\(number)", preferredStyle: UIAlertControllerStyle.Alert)
alertController.addAction(cancel);
self.window?.rootViewController!.presentViewController(alertController, animated: true,nil)} |
Swift - 本地消息的推送通知(附样例)的更多相关文章
- 基于swoole+Redis的消息实时推送通知
swoole+Redis将实时数据的推送 一 实现功能 设计师订单如果设计师未抢单,超时(5分钟)设计订单时时给设计师派送, 设计师公众号中收到派单信息 设计发布者收到派单成功信息 环境 centos ...
- 移动 UX 设计:如何设计推送通知
这个问题你一定想过,在移动用户体验设计领域中,如何设计好一条简单的推送通知. 你注意过么,每天从不同的 App 上收到的大量的推送通知与提醒,这些通知里有多少你真的有兴趣? 每天,用户对各种没用的通知 ...
- 背水一战 Windows 10 (121) - 后台任务: 推送通知
[源码下载] 背水一战 Windows 10 (121) - 后台任务: 推送通知 作者:webabcd 介绍背水一战 Windows 10 之 后台任务 推送通知 示例演示如何接收推送通知/WebA ...
- APNS推送通知消息负载内容和本地格式字符串
来源:http://hi.baidu.com/tangly888/blog/item/62948520121870559358074f.html 翻译苹果文档 地址: 翻译:tangly http: ...
- Swift 本地推送通知UILocalNotification
Notification是智能手机应用开发中常用的信息传递机制,它不用消耗更多资源去不停的检查信息状态,可以非常好的节省资源. 在iOS中分为两种通知:本地.远程.本地的UILocalNotifica ...
- IOS之推送通知(本地推送和远程推送)
推送通知和NSNotification是有区别的: NSNotification:是看不到的 推送通知:是可以看到的 IOS中提供了两种推送通知 本地推送通知:(Local Notification) ...
- (七十三)iOS本地推送通知的实现
iOS的推送通知分为本地推送和网络推送两种,如果App处于挂起状态,是可以发送本地通知的,如果已经被杀掉,则只有定时通知可以被执行,而类似于QQ的那种网络消息推送就无法实现了,因为App的网络模块在被 ...
- iOS 通知、本地通知和推送通知有什么区别? APNS机制。
本地/推送通知为不同的需要而设计.本地通知对于iPhone,iPad或iPod来说是本地的.而推送通知——来自于设备外部.它们来自远程服务器——也叫做远程通知——推送给设备上的应用程序(使用APNs) ...
- iOS 本地推送通知
1.什么是本地推送通知 不需要联网的情况下,应用程序经由系统发出的通知 2.本地推送的使用场景 定时提醒,如玩游戏.记账.闹钟.备忘录等 3.实现本地推送通知的步骤 创建本地推送通知的对象UILoca ...
随机推荐
- 一道关于java 类初始化 成员初始化的笔试题的解析
代码如下: java笔试题public class Mapplication { private static int n; private static Mapplication m1 = new ...
- 【原创】用JAVA实现大文件上传及显示进度信息
用JAVA实现大文件上传及显示进度信息 ---解析HTTP MultiPart协议 (本文提供全部源码下载,请访问 https://github.com/grayprince/UploadBigFil ...
- Numpy矩阵取列向量
>>> A=matrix("1 2;3 4") >>> A matrix([[1, 2], [3, 4]]) >>> A[:, ...
- 【WPF】ContentControl Style定义与使用出现问题后 -- 引发的思考
一.背景 使用WPF的朋友,大家都很喜欢采用定义控件的公共样式,以便整个框架对该资源的使用,好处就是可以达到代码复用.系统风格统一等: 1. 定义资源 <Style TargetT ...
- [WinForm] 使用 WebBrowser 操作 HTML 頁面的 Element-摘自网络
前言 在 Window Form 應用程式如果需要瀏覽網頁時可以崁入 WebBrowser 控制項,但如果需要操作崁入的 HTML 的網頁元素,就需要額外的操作,以下紀錄幾種操作 HTML 元素的方法 ...
- CreateEvent的用法
事件对象就像一个开关:它只有两种状态---开和关.当一个事件处于”开”状态,我们称其为”有信号”否则称为”无信号”.可以在一个线程的执行函数中创建一个事件对象,然后观察它的状态,如果是”无信号”就让该 ...
- [hihoCoder]#1039 : 字符消除
Description 小Hi最近在玩一个字符消除游戏.给定一个只包含大写字母"ABC"的字符串s,消除过程是如下进行的: 1)如果s包含长度超过1的由相同字母组成的子串,那么这些 ...
- jqGrid初次使用遇到的问题及解决方法
问题一:初始化定义翻页用的导航栏时,表中出现"undefined"方框: 解决:需要导入grid.locale-cn.js文件. 问题二:页面只有一页,无法翻页: 解决:初始化设置 ...
- 在类库中使用Session
昨天在做优化网站代码的时候,突发奇想想将页面的代码和业务逻辑代码分离开.就是页面下的.cs文件只用于收集前台上的数据而业务处理都放到一些类库中.可是问题来了,在类库中是无法直接使用Session.在网 ...
- HTML第七天学习笔记
今天主要是学习如何使用JS,第一个就是先是使用JS输出"Hello world" <!doctype html> <html lang="en" ...