iWatch开发:WatchOS 消息推送教程


简介

在watch 中,通知是和iPhone 同步的,在iPhone上的APP收到通知的同事,也会默认推送到iWatch 上,基于watch 的穿戴性,对用户来说,它上面的通知信息将比iPhone更及时。

iWatch 上的通知分为两部分:short-look 与 long-look

short-look

short-look的预览界面比较简单,它会将通知发起的APP和主要标题等信息展示给大家,让你一目了然,当用户抬起手,查看这个通知的时候,这个短通知就会转换为long-look通知。短通知的通知界面我们不能够自定义,系统统一为他设计了样式。

long-look

长通知的界面我们是可以进行一定程度上的定义的,并且可以添加按钮等逻辑操作。

在long-look中,界面定义分为三个部分,头标题栏,自定义视图栏和按钮交换区。头部的标题栏我们不能自定义,它是一个半透明的上面有APP图标和名字的横栏。其最下面是我们可以自定义的区域,我们可以再storyboard中拉入文本和图片。



接下来,更加详细的看下Xcode中通知界面的storyboard, 如图:

自定义的long-look通知由两个单独的界面组成:

静态界面

静态UI是必需的,并且是显示通知内容和图像的最简单的方法。动态界面是可选的,可让您自定义通知内容的显示方式。

使用静态通知界面去定义一个简单版本的自定义通知,其目的在于它可以为你的WatchKit extension无法及时配置动态界面时提供一个临时的界面。若你将storyboard 右上角中 “Has Dynamic Interface” 勾选去掉,则通知显示的即为静态通知界面。下图是我随意配置的静态与动态界面:

选中scheme中的红色背景的对象,然后运行,出现静态通知界面:

动态界面

动态通知界面可让您为用户提供更丰富的通知体验。使用动态界面,您不仅可以显示消息,还可以合并附加信息,配置多个标签,显示动态生成的内容等。勾选“Has Dynamic Interface”后,再次运行即出现动态通知界面:

要实现动态通知接口,必须创建WKUserNotificationInterfaceController的子类。通过 didReceiveNotification:withCompletion: 这个函数来传递推送的数据对象。


推送演示案例

这边我将用iOS 10 本地推送消息的方式来演示下,iPhone 和 iWatch 推送功能。

iPhone 相关部分

在 AppDelegate 中加入如下代码:

#import <UIKit/UIKit.h>
#import <UserNotifications/UserNotifications.h>

@interface AppDelegate : UIResponder <UIApplicationDelegate,UNUserNotificationCenterDelegate>

@property (strong, nonatomic) UIWindow *window;

@end
-(void)registerNotification:(NSInteger )alerTime{
    // 使用 UNUserNotificationCenter 来管理通知
    UNUserNotificationCenter* center = [UNUserNotificationCenter currentNotificationCenter];

    UNMutableNotificationContent* content = [[UNMutableNotificationContent alloc] init];
    content.title = [NSString localizedUserNotificationStringForKey:@"Hello!" arguments:nil];
    content.body = [NSString localizedUserNotificationStringForKey:@"Hello_message_body"
                                                         arguments:nil];
    content.sound = [UNNotificationSound defaultSound];

    // 在 alertTime 后推送本地推送
    UNTimeIntervalNotificationTrigger* trigger = [UNTimeIntervalNotificationTrigger
                                                  triggerWithTimeInterval:alerTime repeats:YES];

    UNNotificationRequest* request = [UNNotificationRequest requestWithIdentifier:@"FiveSecond"
                                                                          content:content trigger:trigger];

    //添加推送成功后的处理!
    [center addNotificationRequest:request withCompletionHandler:^(NSError * _Nullable error) {
        NSLog(@"本地通知, 成功添加推送");
    }];
}

#pragma mark - UNUserNotificationCenterDelegate
//在展示通知前进行处理,即有机会在展示通知前再修改通知内容。
-(void)userNotificationCenter:(UNUserNotificationCenter *)center willPresentNotification:(UNNotification *)notification
        withCompletionHandler:(void (^)(UNNotificationPresentationOptions))completionHandler{
    //1. 处理通知

    //2. 处理完成后调用 completionHandler ,用于指示在前台显示通知的形式
    completionHandler(UNNotificationPresentationOptionAlert);
}

其中设定为每一分钟,推送一个本地消息。

运行我们的工程,在一分钟之后,我们的iWatch 上就会收到推送消息了,如图:

要准确的能让iWatch收到推送消息,需要注意以下几点:

1.将所配对的手表取消手腕检测功能

2.确保你的iWatch 不在充电

3.确保你的iPhone 在锁屏状态



好了。祝大家生活愉快。多多收获友谊和爱情。如果想获取更多的讯息,请扫描下方二维码关注我的微信公众号:

时间: 2024-12-09 14:29:42

iWatch开发:WatchOS 消息推送教程的相关文章

iOS开发——远程消息推送的实现

在我们使用App的过程中.总是会收到非常多的消息推送.今天我们就要来实现这个功能.首先消息推送分为本地消息推送和远程消息推送.而当中又以远程消息最为经常使用. 可是在推送远程消息之前.有两个前提条件.你须要购买苹果的开发人员账号,也就是每年99刀:而且有一台iOS真机(模拟器不能測试推送).事实上远程推送须要有server,可是我们自己临时没有server,到时候后台使用Parse进行推送. 实现过程例如以下: (1)进入苹果的开发人员站点:https://developer.apple.com

微信开发之消息推送

//以文本的形式把编辑的消息发送给微信企业号中的某一个应用组 //定义数据模型 public class Access_token { public Access_token() { // // TODO: 在此处添加构造函数逻辑 // } string _access_token; string _expires_in; /// <summary> /// 获取到的凭证 /// </summary> public string access_token { get { retur

IOS开发之实现App消息推送(最新)

好久没有写过博客啦,今天就由本菜鸟给大家做一个简单的IOSApp消息推送教程吧!一切从0开始,包括XCode6, IOS8, 以及苹果开发者中心最新如何注册应用,申请证书以及下载配置概要文件,相信很多刚开始接触ios的人会很想了解一下.(ps:网上看了一下虽然有很多讲述推送的好教程,我也是看着一步步学会的,但是这些教程的时间都是去年或者更早时期的,对引导新手来说不是很合适) 第一部分 首先第一步当然是介绍一下苹果的推送机制(APNS)咯(ps:其实每一篇教程都有),先来看一张苹果官方对其推送做出

iOS开发之实现App消息推送

本文将带大家做一个简单的IOSApp消息推送教程,包括XCode6, IOS8, 以及苹果开发者中心最新如何注册应用,申请证书以及下载配置概要文件,相信很多刚开始接触ios的人会很想了解一下.(ps:网上看了一下虽然有很多讲述推送的好教程,我也是看着一步步学会的,但是这些教程的时间都是去年或者更早时期的,对引导新手来说不是很合适) 第一部分 首先第一步当然是介绍一下苹果的推送机制(APNS)咯(ps:其实每一篇教程都有),先来看一张苹果官方对其推送做出解释的概要图. Provider是给你手机应

[转]iOS开发之实现App消息推送(最新)

转自:http://blog.csdn.net/shenjie12345678/article/details/41120637 好久没有写过博客啦,今天就由本菜鸟给大家做一个简单的IOSApp消息推送教程吧!一切从0开始,包括XCode6, IOS8, 以及苹果开发者中心最新如何注册应用,申请证书以及下载配置概要文件,相信很多刚开始接触ios的人会很想了解一下.(ps:网上看了一下虽然有很多讲述推送的好教程,我也是看着一步步学会的,但是这些教程的时间都是去年或者更早时期的,对引导新手来说不是很

java后端IM消息推送服务开发——协议

最近在一家saas企业使用Mqtt开发IM消息推送服务,把开发中的一些问题记录下来,项目仍在商用中,完整的消息服务包括4个模块---协议protocol,信令Signal,规则Rule,状态Status,这个主题主要是协议protocol部分. 主要技术涉及到MongoDB,webservice,httpclient,Mqtt等 protocol分为四个模块类来实现,当然这是为了以后的扩展性比较好 首先看一下我们的主类,主要是mqtt基础方法的一个框架 public class MqttProt

IOS8开发之实现App消息推送

第一部分 首先第一步当然是介绍一下苹果的推送机制(APNS)咯(ps:其实每一篇教程都有),先来看一张苹果官方对其推送做出解释的概要图. Provider是给你手机应用发出推送消息的服务器,而APNS(Apple Push Notification Service)则是苹果消息推送服务器.你本地的服务器当需要给应用推送一条消息的时候,先要将消息发出到苹果推送服务器,然后再由苹果推送服务器将消息发到安装了该应用的手机. 接下来再看一张解释图: 根据上图的逻辑我来给大家解释一下: 1.你的IOS应用

atitit.极光消息推送服务器端开发实现推送&#160;&#160;jpush&#160;v3.&#160;总结o7p

atitit.极光消息推送服务器端开发实现推送  jpush v3. 总结o7p 1. 推送所设计到底功能1 1.1. 内容压缩1 1.2. 多引擎1 2. reg  ,设置appkey and pwdkey1 3. 下载server  sdk   v31 4. push推送样例1 5. Code3 1. 推送所设计到底功能 1.1. 内容压缩 1.2. 多引擎 2. reg  ,设置appkey and pwdkey 3. 下载server  sdk   v3 https://github.c

微信小程序开发:设置消息推送

开发设置中,启用并设置消息推送配置后,用户发给小程序的消息以及开发者需要的事件推送,都将被微信转发至该服务器地址中. 不过照着说明去操作,即使按照最简单的明文方式去设置,还是提示Token验证失败.仔细研究说明,其实服务器验证过程很简单,用Get发来一个连接,然后在自己的页面中去检验,不想做也可以先不做,直接返回echostr即可.关键在,怎么返回,开始我还以为必须要按照xml或者json返回,试了半天,其实很简单,清空所有其他输出,直接返回echostr即可. Response.Clear()