Swift - 本地消息的推送通知(附样例)
1,推送消息的发送
--- AppDelegate.swift ---
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
import UIKit
@UIApplicationMain
class AppDelegate : UIResponder , UIApplicationDelegate {
var window: UIWindow ?
func application(application: UIApplication ,
didFinishLaunchingWithOptions launchOptions: [ NSObject : AnyObject ]?) -> Bool {
//开启通知
let settings = UIUserNotificationSettings (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 ---
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
|
import UIKit
class ViewController : UIViewController {
override func viewDidLoad() {
super .viewDidLoad()
//发送通知消息
scheduleNotification(12345);
//清除所有本地推送
//UIApplication.sharedApplication().cancelAllLocalNotifications()
}
//发送通知消息
func scheduleNotification(itemID: Int ){
//如果已存在该通知消息,则先取消
cancelNotification(itemID)
//创建UILocalNotification来进行本地消息通知
let localNotification = UILocalNotification ()
//推送时间(设置为30秒以后)
localNotification.fireDate = NSDate (timeIntervalSinceNow: 30)
//时区
localNotification.timeZone = NSTimeZone .defaultTimeZone()
//推送内容
localNotification.alertBody = "来自hangge.com的本地消息"
//声音
localNotification.soundName = UILocalNotificationDefaultSoundName
//额外信息
localNotification.userInfo = [ "ItemID" :itemID]
UIApplication .sharedApplication().scheduleLocalNotification(localNotification)
}
//取消通知消息
func cancelNotification(itemID: Int ){
//通过itemID获取已有的消息推送,然后删除掉,以便重新判断
let existingNotification = self .notificationForThisItem(itemID) as UILocalNotification ?
if existingNotification != nil {
//如果existingNotification不为nil,就取消消息推送
UIApplication .sharedApplication().cancelLocalNotification(existingNotification!)
}
}
//通过遍历所有消息推送,通过itemid的对比,返回UIlocalNotification
func notificationForThisItem(itemID: Int )-> UILocalNotification ? {
let allNotifications = UIApplication .sharedApplication().scheduledLocalNotifications
for notification in allNotifications! {
let info = notification.userInfo as ! [ String : Int ]
let number = info[ "ItemID" ]
if number != nil && number == itemID {
return notification as UILocalNotification
}
}
return nil
}
override func didReceiveMemoryWarning() {
super .didReceiveMemoryWarning()
}
}
|
2,点击推送消息的响应
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
func application(application: UIApplication ,
didReceiveLocalNotification notification: UILocalNotification ) {
//设定Badge数目
UIApplication .sharedApplication().applicationIconBadgeNumber = 0
let info = notification.userInfo as ! [ String : Int ]
let number = info[ "ItemID" ]
let alertController = UIAlertController (title: "本地通知" ,
message: "消息内容:\(notification.alertBody)用户数据:\(number)" ,
preferredStyle: UIAlertControllerStyle . Alert )
self .window?.rootViewController!.presentViewController(alertController,
animated: true , completion: nil )
}
|
Swift - 本地消息的推送通知(附样例)相关推荐
- swift通知栏推送_如何使用Swift和Laravel使用推送通知创建iOS加密跟踪应用
swift通知栏推送 by Neo Ighodaro 由新Ighodaro 如何使用Swift和Laravel使用推送通知创建iOS加密跟踪应用 (How to create an iOS crypt ...
- Swift - SwiftyJSON的使用详解(附样例,用于JSON数据处理)
转自:http://www.hangge.com/blog/cache/detail_968.html Swift - SwiftyJSON的使用详解(附样例,用于JSON数据处理) 2016-01- ...
- 本地推送通知和远程推送通知
推送通知 推送通知跟NSNotification有所区别: 1> NSNotification是抽象的,不可见的 2> 推送通知是可见的(能用肉眼看到) iOS中提供了2种推送通知: 本地 ...
- 腾讯信鸽自定义推送通知
使用信鸽的过程,感觉一路艰辛,各种坑,想必各位使用过的也是深有体会的吧.而且官方文档也太简洁了.demo功能也不全,没办法只能自己摸索着来,这不刚把自定义通知弄明白,就给各位看官献上来了. 1. XG ...
- 如何设计好一条推送通知
你注意过么,每天从不同的 App 上收到的大量的推送通知与提醒,这些通知里有多少你真的有兴趣? 智能手表屏幕上无意义的通知 每天,用户对各种没用的通知应接不暇,这些通知让他们分散注意力,甚至成为了骚扰 ...
- android自定义push通知_20个海外Web和App推送通知服务工具
在App和网站中使用推送通知有不同的原因,并且在提高流量和与客户互动方面有很多好处.推送通知是一种交互式可点击消息,可将访问者直接引导至你的网站.它们可以帮助你以指数方式增加流量和参与率.因此,营销人 ...
- 20个海外Web和App推送通知服务工具(一)
在App和网站中使用推送通知有不同的原因,并且在提高流量和与客户互动方面有很多好处.推送通知是一种交互式可点击消息,可将访问者直接引导至你的网站.它们可以帮助你以指数方式增加流量和参与率.因此,营销人 ...
- 个性化推送通知的3种方法,提升60% ROI
提及推送通知,大家都不陌生,只要你有智能手机.手表或电脑,就会有推送.本文通过一个精准营销案例,教大家如何设置个性化推送.设置地理围栏和精准推送时间等方式你提高推送的实际效果. 如果你的电子设备正好连 ...
- Swift 本地推送通知UILocalNotification
Notification是智能手机应用开发中常用的信息传递机制,它不用消耗更多资源去不停的检查信息状态,可以非常好的节省资源. 在iOS中分为两种通知:本地.远程.本地的UILocalNotifica ...
最新文章
- 2012.3.17庆祝我的博客创建!名字是web-sheena
- Bootstrap3基础 disabled 多选框 鼠标放在方框与文字上都出现禁止 标识
- 聊聊“数据安全与数据治理”那些事
- go 随机数是重复的
- 通过MOXy实现使JAXB更加清洁
- mysql load data infile 导入数据 某一列 空_Sql数据挑战赛amp;网络销售案例分析
- 普通用户安装nginx
- matlab预测ARMA-GARCH 条件均值和方差模型
- 2022年推出?特斯拉人形机器人被批就是个笑话
- XP系统计算机桌面图标不见,XP系统显示桌面图标消失的解决方法
- 怎么灵活使用Graph, Document, Key/Value 三种混合模型的数据库?--Java 10分钟教程
- python 绘制柱状图
- Linux shell 编程(四):变量
- thinkcmf apache rewrite文件
- CentOS 安装快速Nginx-1.12.0
- mysql 纯真ip 导出dat_纯真IP数据库(qqwry.dat)转换成最新的IP数据库格式(ipwry.dat)
- 制作HTML邮件邮箱注意问题和解决方案--兼容手机邮箱、电脑邮箱和邮件客户端
- 深夜给这个世界添加一点佐料
- 帆软报表列表_报表软件FineReport各类函数大全
- 《TiDB 6.x in Action》发布,凝聚社区集体智慧的 6.x 实践汇总!
热门文章
- vim一直以来的切换命令行窗口(term)执行程序的烦恼终于由8.1版本的一个命令解决了
- mysql跨库查询 索引_MySQL中跨库查询怎么搞?
- python selenium 保存网页_python selenium+pywin32 实现网页另存为
- xgboost算法 c语言,xgboost与sklearn的接口
- c语言放空一个数组,C++语言
- (五)操作系统安全概念和设计思想
- 项目管理中的客户需求变更时需求分析和解决方法
- 一行Python代码就可以玩一些童年小游戏
- Java中使用Jedis连接Redis数据库流程
- Winform控件-DevExpress18下载安装注册以及在VS中使用