AppleWatch开发入门七——watchOS中通知的应用(二)

简介: AppleWatch开发入门七——watchOS中通知的应用

四、long-look的静态界面和动态界面


       上面提到过,long-look分为静态界面和动态界面两种,当我们在storyBoard中拉入一个Notification Interface Controller的时候,可以选择同时创建动态界面,勾选 Has Dynamic Interface:


image.png


这时,在storyBoard中是如下模样:


image.png


我们在创建一个文件,继承于WKUserNotificationInterfaceController,并将storyBoard中动态的的推送controller的class设置为我们创建的类:

image.png



注意,这里设置的是动态的Interface,也就是上面右边的controller。之后运行,你会发现效果并没有什么改变,那是因为系统默认会从静态界面加载推送界面,我们需要在NotifacationController代码中做一些操作:


//在NotificationController中重写下面两个方法

//这个用于本地推送

override func didReceiveLocalNotification(localNotification: UILocalNotification, withCompletion completionHandler: ((WKUserNotificationInterfaceType) -> Void)) {

       //在这里做一些动态界面的加载操作,比如可以根据推送的数据 设置图片 文字等

     

       //下面这个方法决定是加载静态的界面还是动态的界面

       //Custom是加载动态界面

       //default是加载静态界面

       completionHandler(.Custom)

   }

 

 

//设个用于远程推送    和上面方法类似

override func didReceiveRemoteNotification(remoteNotification: [NSObject : AnyObject], withCompletion completionHandler: ((WKUserNotificationInterfaceType) -> Void)) {

   

       completionHandler(.Custom)

   }

五、触发推送点击事件


       首先,我们多配置几个点击按钮,在apns文件中如下配置:


"WatchKit Simulator Actions": [

                                  {

                                  "title": "第一",

                                  "identifier": "one"

                               

                                  },

                                  {

                                  "title": "第二",

                                  "identifier": "two"

                               

                                  },

                                  {

                                  "title": "第三",

                                  "identifier": "three"

                               

                                  }

                                  ],

在我们watch App的InterfaceController中实现如下的方法:


//重写下面两个方法来响应点击事件

//远程推送的方法

override func handleActionWithIdentifier(identifier: String?, forRemoteNotification remoteNotification: [NSObject : AnyObject]) {

       //通过我们配置的按钮id来区分点击的按钮 处理响应的逻辑

       print(identifier)

   }

//本地推送的方法

override func handleActionWithIdentifier(identifier: String?, forLocalNotification localNotification: UILocalNotification) {

     

   }

目录
相关文章
|
9月前
|
Java API Apache
【Apache ShenYu源码】看看贡献者如何实现支持提醒通知设计
在阅读中,还发现了有个html文件忘记加了开源协议,我们提下PR修复下,又收获了一次开源贡献!!PR提交戳这。
【Apache ShenYu源码】看看贡献者如何实现支持提醒通知设计
|
9月前
|
小程序 前端开发 IDE
【经验分享】支付宝小程序订阅消息功能实操(前端篇)|江海计划
【经验分享】支付宝小程序订阅消息功能实操(前端篇)|江海计划
801 7
|
移动开发 Java Maven
【Java用法】使用Java开发连接钉钉应用实现钉钉通知的功能
【Java用法】使用Java开发连接钉钉应用实现钉钉通知的功能
274 0
|
开发者
手把手教你微信公众号如何给指定用户发送消息提醒
消息提醒功能是提升用户满意度的最有效方式,基于微信聊天的消息提醒也是现在最常见的消息提醒方式之一,
手把手教你微信公众号如何给指定用户发送消息提醒
|
缓存 移动开发 JSON
尝试开发微信公众号消息推送功能并且和小程序关联
之前写了几篇关于微信小程序的开发实践,总的来说没啥难度,感兴趣的请移步:[使用Mpvue配合Weui开发面试题题库微信小程序,并且发布到正式环境](https://v3u.cn/a_id_116),这一次我们来尝试开发一下微信公众号,那么公众号和小程序到底有什么区别呢?
尝试开发微信公众号消息推送功能并且和小程序关联
小储云邮件通知插件配置教程
设置通知配置,配置完成之后,有订单-工单-提现可以通知站长,提升了平台处理效率!
478 0
小储云邮件通知插件配置教程
|
Java 微服务
Java报告推送失败补偿机制;钉钉群通知消息核心代码
Java报告推送失败补偿机制,超过次数后使用钉钉通知开发 自动补偿实现: 要求方法调用的过程中,失败的时候,系统有办法进行自动重试,重试达到一定次数后,钉钉通知开发。 实现设计:注解,反射,定时任务
350 0
Java报告推送失败补偿机制;钉钉群通知消息核心代码
|
消息中间件 NoSQL Java
SpringDataRedis 中测试消息通知| 学习笔记
快速学习 SpringDataRedis 中测试消息通知。
SpringDataRedis 中测试消息通知| 学习笔记
|
传感器 SQL 监控
如何用Python发送告警通知到钉钉?
如何用Python发送告警通知到钉钉?
637 0
如何用Python发送告警通知到钉钉?

热门文章

最新文章