在通知栏上玩游戏,Steve iOS 游戏实现思路

最近有一款游戏特别的火爆,叫做Steve ,一种可以在通知中心直接玩的游戏。作者的脑洞也是非常的大,实在让人佩服。其实实现起来也简单,就是用到了iOS8新特性 app extension(Today extension),我们先来看看Steve 这图的效果。

我打算把一个曾经很火爆的开源游戏移植成控制中心的游戏。没错就是它FlappyBird 传送门
首先我们来看以下效果。

flappybirdNC.gif

extension 支持以下几种

  • Action 扩展 - 点击 Action 按钮后通过判断上下文来将内容发送到应用
  • Today 扩展 - 通知中心的 "Today" 的面板中添加一个 widget
  • Share 扩展 - 点击分享按钮后将网站或者照片通过应用分享
  • Photoshop edit 扩展 - 编辑系统照片的扩展
  • Document 扩展 - 提供和管理文件内容
  • Custom Keyboard - 替代系统键盘的扩展自定义键盘或输入法

我们需要 创建Today extension,,today extension 就是在下拉通知栏下面添加应用扩展。如下图所示。

1. 新建工程

创建工程。

2. 新建一个Today Extension targets ,如下图所示

可以看到工程中多了扩展项目,扩展项目下有一个MainInterface.storyboard ,这个 .storyboard的就是要展示在Today 通知中心的内容(突然感觉整个世界都清晰了,直接在这个ViewController放内容就行了嘛)。扩展项目编译后,会生成一个.appex后缀的包文件,这个是独立于主工程的扩展应用。可以理解为两个应用,因为沙盒机制数据不能交互。

如果需要扩展和主应用进行数据的交互,我们需要创建一个共享的数据区域,我们在Capabilities 勾选 App groups 功能,并且创建一个app group(注意这个操作需要在主Target 和 extension Target 都需要构想,并且使用同一个app group), 这样就可以进行数据的交互了,具体操作如下所示

//设置共享的数据 在主 target里面let shareUserdefault  = NSUserDefaults(suiteName:"group.comtomNC") // name 填写 刚刚创建 App GroupshareUserdefault?.setObject("pass this value to extension", forKey: "shareValue")
// 在extension target里面获取 数据let shareUserdefault  = NSUserDefaults(suiteName:"group.comtomNC") // name 填写 刚刚创建 App GroupshareUserdefault?.objectForKey("shareValue")  //获得这个数据

然后我们下载 一个开源的FlappyBird,把必要的工程文件和资源拷入到 扩展工程中。

然后我们需要把 MainInterface.storyboard的rootViewController类改为,FlappySwift 工程的rootViewController(也就是 GameviewController 这个类), 还有一点需要注意,要把ViewController.view 属性设置为 SKView 如下图所示

然后我们来编译运行,撸起,直接上效果图(可以看到技术还是可以的。注意在真机上运行的时候 会出现内存不足的问题,跑不起来,现在只能在模拟器运行,具体today extension 支持最大内存多少我没具体测过,以后有机会再补充吧) 大家可以点击这里获得 DEMO 连接

flappybirdNC.gif

参考资料

notification today widget 参考文章 喵神这一篇文章更加详细的介绍了 Notification today widget

作者: HuminiOS-极光

原文: http://www.jianshu.com/p/fd739e972e20

posted on 2017-05-15 16:17 叶祖辉 阅读(...) 评论(...) 编辑 收藏

转载于:https://www.cnblogs.com/yezuhui/p/6856934.html

在通知栏上玩游戏,Steve iOS 游戏实现思路相关推荐

  1. sudo dolphin_如何使用Dolphin在PC上玩Wii和GameCube游戏

    sudo dolphin Ever wish you could play Wii and GameCube games on your PC? Just like your favorite ret ...

  2. iphone手机如何用计算机讲游戏,电脑怎么玩ios手游?电脑上玩苹果手机应用和游戏方法...

    现在安卓模拟器非常多,很多用户都会在电脑上玩手游,体验很好,也不需要每天都抱着手机了,但是如果使用的是苹果手机呢?是的,IOS模拟器很少,很多用户甚至不知道有ios模拟器,其实已经有团队开发出了国内第 ...

  3. 如何在电脑上玩香肠派对_如何在Chromecast上玩多人派对游戏

    如何在电脑上玩香肠派对 So you have a Chromecast. Did you know that you can do more than just stream movies, mus ...

  4. boss直聘账号异常登不上_【苹果IOS游戏账号分享】据说是最欢乐的2D冒险游戏?Q萌有趣,好不好玩你说了算——惊奇剑士...

    惊奇 剑士 游戏下载 点击下方卡片下载游戏!不会使用请点击<操作指南> ↓↓↓↓ 本游戏是由1群的资源库:"hentai是绅士不是变态" 赞助我们购买的,感谢大家的鼎力 ...

  5. boss直聘账号异常登不上_【苹果IOS游戏账号分享】别再留言它了,二哈已经立马给你们买了!不一样的真地下城游戏,奶好全队才是你该做的事——地下城与治疗者...

    地下城与治疗者 Raid Manager 2019.12.07 游戏下载 点击下方卡片下载游戏!不会使用请点击<操作指南> 使用必看 近期出现账号盗用,锁定等一系列情况,哈士奇决定不定期更 ...

  6. 用tcgames在电脑上玩荒野行动手机游戏效果比安卓模拟器好太多了

    用 模拟器 在电脑上玩荒野行动不是卡顿就是闪退实在是伤不起了.至于问为什么荒野行动由PC版还要用模拟器在电脑上玩的: 1.电脑是8G内存用了好几年的破电脑一台,用来玩荒野行动的PC版卡成PPT 2.荒 ...

  7. 我在 Chrome 上玩了下云游戏,它能让我们以后都不抢 RTX3060Ti 了吗?

    本文转载自 APPSO,作者 王志劭 前段时间在撰写 FPS 简史时,查阅了众多资料,回顾了形形色色的游戏平台和设备,使我联想到当年游戏玩家的心中,应该都有同一个念想:不久的将来,我能随时随地玩到想玩 ...

  8. android游戏和ios游戏哪个多,安卓手游与苹果手游哪个土豪多,为什么

    现在玩手游几乎不是在苹果就是安卓平台上玩,只要分析出哪个平台的土豪多就可以大致判断在手游方面哪个的土豪多了,而且手游不是那些单机游戏那样采用一次性买断制,而是需要慢慢一点点往里冲的,这样就出现了今天充 ...

  9. 在ubuntu上玩flatpak打包的游戏

    概述 flatpak是一个个打包方式,为的是可以在不同的linux发行版本上运行同一个版本的应用,具体的大家可以深入研究.下面我就带领大家在ubuntu上运行用flatpak打包的茶杯头这个游戏 寻找 ...

最新文章

  1. 硬链接、软链接的区别
  2. Mycat环境搭建教程收集(待实践)
  3. RocketMQ消费幂等性处理
  4. HTML、sqlserver数据库和java前七章节的复习(一)
  5. 计算机专业知识是什么范围,计算机基础知识考题
  6. 一些UED网址的收藏
  7. 判断一棵树是否是一颗完全二叉树☆
  8. 解决pytouch导入模型报错:AttributeError: Can‘t get attribute ‘XXX‘ on <module ‘__main__‘ from XXX>
  9. 50 行代码教你爬取猫眼电影 TOP100 榜所有信息
  10. TCPclient-Unity版本
  11. 光纤信号服务器,485转光纤的两种方式
  12. 【CSDN雇主招聘】深信服科技带着高薪岗位JD和公司周边来啦
  13. 怎样用计算机弹虫儿飞,吉他初学者必看:虫儿飞指弹教程
  14. 2021-2025年中国冷链跟踪和监测系统行业市场供需与战略研究报告
  15. Jinji2 模板引擎简介
  16. (win10家庭版)修改C盘Users目录下文件夹名称
  17. 用python自动制作ppt第一讲——了解11种默认布局
  18. 羽毛球击球技术四大基本环节解码
  19. python模拟ios_使用Xcode + Python进行IOS运动轨迹模拟!
  20. C语言每日一练——第133天:打鱼还是晒网

热门文章

  1. Android组件化专题 - 路由框架原理
  2. PostgreSQL入门,PostgreSQL和mysql
  3. 【CodeForces】961 F. k-substrings 字符串哈希+二分
  4. 用Ghost几秒钟快速格式化120G大硬盘
  5. linux之LAMP架构优化
  6. converter 迁移xen server 上的虚拟机 到 wmware esxi
  7. BlogEngine 1.0中的编码问题及解决方案
  8. Castle ActiveRecord学习实践(5):实现Many–Many关系的映射
  9. myBaits SQL
  10. Thinkphp5 用ab压力测试工具测试高并发请求