iOS 9之WatchKit for WatchOS 2
自AppleWatch发行的同时就可以为AppWatch开发相应的应用程序,不过最初的版本,能开发的功能极为有限,所以也只是有少数的App厂商为Apple定制了App,所以迄今为止,Apple Store上面,看得到的Apple Watch应用也为数不多,多数都是直接跟Apple Watch所带的传感器有关的应用,如医疗类、通讯、提醒、运行类等。
然此次,Apple 发行的Watch OS 2给了App开发商更多的发展空间,可以使用Xcode 9为AppleWatch定制功能更为丰富的app。下面就让我们一起动手开发一个简单的AppleWatch App吧
图1 创建Watch App
图2 Watch App 界面开发
图3 App运行效果图
上面只是做了一个简单的界面开发,具体的可以看github示例源码,下面就跟着Cocoon Jin一起来看下,此次的Watch OS 2具体有新增了哪些亮点功能:
图4 WatchKit 新支持功能
从上图我们可以看到,此次Apple Watch OS2有给用户提供Digital Crown、Layout and Animation、Taptic Engine、Audio and Video、Alerts、PassKit等功能支持。
下面我们就一起来看下,这些功能具体的表现是什么样子
说到AppleWatch,可能最先想到的就是AppleWatch的时钟界面,第一代AppleWatchOS并没有提供相应的接口,来支持App开发商对表盘进行自定,让大家惊喜的是,这次WatchOS2提供了大家相应的接口。
图5 系统默认表盘
图6 Apple Watch OS 2 App开发可自定部分
这里只提供这一个表盘做为示例,其它的部分详见Apple官方文档。
另外一个亮点的部分就是 Audio and Video 部分,WatchOS 2可以在AppleWatch上面播放音乐和Movie。
图7 Watch App内,Audio播放控制界面
图8 Watch OS 2,视频播放控制界面
此外,现在WatchOS 2也提供了像iOS里面的那种系统提示窗口,示例如下:
图9 App 内弹出的提示窗口
通过下面的代码(详情),就可以弹出像iOS里面的AlertView一样的提示窗口,不过目前选择不同的按钮,在回调里面所执行的事件执行无效,期待Release 版本SDK可以修复这个问题。
__block WKInterfaceButton *button = self.button;
WKAlertAction *englishAction = [WKAlertAction actionWithTitle:@"English"
style:WKAlertActionStyleDestructive
handler:^{
[button setTitle:@"Kdan Mobile"];
}];
WKAlertAction *chineseAction = [WKAlertAction actionWithTitle:@"中文"
style:WKAlertActionStyleDestructive
handler:^{
[button setTitle:@"凯钿软件"];
}];
[self presentAlertControllerWithTitle:@"Kdan Mobile"
message:@"欢迎阅读Cocoon Jin iOS9系列文章!"
preferredStyle:WKAlertControllerStyleAlert
actions:@[englishAction, chineseAction]];
iOS 9之WatchKit for WatchOS 2的更多相关文章
- [App Store Connect帮助]六、测试 Beta 版本(1)TestFlight Beta 版测试概述(iOS、Apple TVOS、watchOS)
TestFlight Beta 版测试让您可以分发您 App 的 Beta 版构建版本给测试员并收集反馈.您可以在您的 App Store Connect 帐户中一次为至多 100 个 App 启用 ...
- IOS 开发教程
http://www.raywenderlich.com/category/ios http://www.raywenderlich.com/50310/storyboards-tutorial-in ...
- 30 分钟开发一个简单的 watchOS 2 app <oneVcat>
Apple Watch 和 watchOS 第一代产品只允许用户在 iPhone 设备上进行计算,然后将结果传输到手表上进行显示.在这个框架下,手表充当的功能在很大程度上只是手机的另一块小一些的显示器 ...
- IOS开发基础知识--碎片33
1:AFNetworking状态栏网络请求效果 直接在AppDelegate里面didFinishLaunchingWithOptions进行设置 [[AFNetworkActivityIndicat ...
- iOS真机调试引入第三方库(如友盟等)编译时候,出现错误提示
用Xcode 7 beta 3在真机(iOS 8.3)上运行一下工程,结果发现工程编译不过.看了下问题,报的是以下错误: MARK:解决方法:在building Setting 中设置bitCode ...
- iOS:BitCode的介绍
一.什么是BitCode?作用是什么? Bitcode is an intermediate representation of a compiled program. Apps you upload ...
- iOS开发:bitcode介绍和使用cocoapods出现“target overrides the `OTHER_LDFLAGS`……”的解决方案
在开发中,不免需要引入第三方库,但是因为库的问题,会发生很多错误.如: 1.因为一些第三方库不包含bitcode就会报错: 一次使用xcode7.1时,发现编译失败,报错信息: umeng messa ...
- Apple Watch: WatchKit 应用程序要点
Apple Watch: WatchKit 应用程序要点 本文译自:Apple Watch: WatchKit App Essentials WatchKit 应用程序架构 上一篇文章简单介绍了 Wa ...
- App适配iPhone 6/ Plus和iOS 8:10条小秘诀
App适配iPhone 6/ Plus和iOS 8:10条小秘诀 iPhone 6iOS 8适配 (原文:raywenderlich 作者:Jack Wu 译者:@TurtleFromMars ...
随机推荐
- jquery width(), innerWidth(), outerWidth() 区别
#div1 { width: 100px; height: 100px; border: 5px black solid; padding: 10px; margin: 10px; backgroun ...
- C++中的构造函数和析构函数
构造函数: 在类实例化对象时自动执行,对类中的数据进行初始化.构造函数可以从载,可以有多个,但是只能有一个缺省构造函数. 析构函数: 在撤销对象占用的内存之前,进行一些操作的函数.析构函数不能被重载, ...
- js正则表达式中的问号使用技巧总结
这篇文章主要介绍了js正则表达式中的问号几种用法,比如+?,*?,{2,3}?可以停止匹配的贪婪模式等例子的解析. 在表示重复的字符后面加问号,比如+?,*?,{2,3}?可以停止匹配的贪婪模式. v ...
- 配置本地yum源的方法
配置本地yum源的方法 1. 挂载光驱 如果是上传iso镜像到服务器上,则直接挂载iso镜像即可: #mount -o loop -t iso9660 /xxxx.iso /挂载目录 开机自动加载#v ...
- ListView 水平滑动 水平和竖直滑动
效果 Activity public class MainActivity extends Activity { @Override protected void onCreate(B ...
- Vs2010发布Asp.Net网站及挂到IIS服务上
首先用vs2010打开一个Asp.Net项目, 也可以通过vs菜单->生成->发布网站 选择发布网站的路径 这样发布就OK了 下面就吧发 ...
- css样式之边框和内外边距
1.css样式之边框:border 实心的边框: <!DOCTYPE html><html> <head> <meta http-equiv="co ...
- __dopostback的用法 . 编辑
在.NET中,所有的服务器控件提交到服务器的时候,都会调用__doPostBack这个函数,所以灵活运用这个函数对于我们的帮助还是很大的. 比如,在我们写程序的时候经常会需要动态的生成一些控件,最简单 ...
- 破解Windows Server 2003只允许3个用户远程登陆
导读:WIN2003在使用远程桌面登录的时候,一台机器默认情况下只允许3个用户同时登录. 这很不方便.我们修改WIN2003远程桌面的连接数,可以设置3个以上用户远程桌面. 1.启动终端服务:在&qu ...
- Calling a C++ dll with unsigned char* parameters
unsigned char* 等价 BYTE* 例1: C++: int __stdcall LIVESCAN_GetFPRawData(int nChannel, unsigned char *p ...