首页
学习
活动
专区
圈层
工具
发布

iOS Extension介绍以及一些Extension开发经验浅谈

标签: Extension开发 --- 苹果在iOS 8之后引入了一些新的特性,Extension就是其中之一,一开始提供的Extensions包含Today、Action、Share、Photo Editing...Extensions的通信机制 Extensions里的通信主要包含和host app的通信以及和containing app的通信。...和Containing App通信 [Extension和Containing App间接通信] Extensions和Containing App之间的通信与数据共享就比较复杂了,简单来说有openURL...以及共享数据的方式,openURL的方式对于大部分Extensions除了Today Extensions等少数几个来说是不可行的,否则你的Action/Share Extension直接呼起Containing...可以总结为两种代码共享方式 Embedded Framework 第一种Embedded Framework 是苹果为支持Extension和Containing App之间共享代码设计的一种Framework

1.6K40

干货 | 携程机票iOS Widget实践

官方简介图: Extension、Containing App和Host App三者之间的通信关系,如下官网图示: 由图可知App Extension与Host App可以直接通信,而App Extension...和Containing App之间并不直接通信。...但是在实际应用场景中,仍然会有和Containing App通信的需求,这里系统给出的方案是在两者之间使用共有存储来解决数据通信的问题,App Extension需要打开Containing App 并附带一些参数...Widget前身是Today Extension,其在iOS 8.0第一次推出,在iOS 14.0被废弃,Widget于iOS 14.0推出。...Xcode12不再提供Today Extension的添加,对于已有Today Extension的App,系统仍然在负一屏保留的区域展示,并且不能像Widget一样随意拖动移动位置和删除等操作,仅保留最初的规则

1.6K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    苹果进入下一个十年!抛弃英特尔,WWDC官宣将Mac迁移至自研芯片,首批年底上市

    大数据文摘出品 作者:刘俊寰、魏子敏 放弃15年合作伙伴英特尔,苹果宣布将Mac迁移至自研ARM芯片。...虽然具有不同大小的小部件在你现在的手机上也能通过“今日”(Today)访问,但是在iOS14中,小部件能够添加到主屏幕,和应用程序一起生活。...当用户激活Siri后,Siri不会占满整个屏幕,只是在屏幕下方的图标显示底部有一个小的覆盖,而且,Siri如今不仅可以发送命令消息,还可以发送音频消息了。...在新系统中,“照片”和“音乐”具有侧边栏,可让用户在应用程序的不同部分之间跳转,“日历”在屏幕顶部具有更多控件。 这些更改可能不那么引人注目,但能够使应用程序能够被更容易和更快速地找到和控制。...AirPods耳机也有了更多新功能,全新的AirPods能自动在设备之间切换,比如,如果用户正在手机上播放音乐,然后电脑上开始播放视频,AirPods的连接就能自动从手机切换到电脑。

    3.3K30

    酷我音乐iOS小组件适配开发实践

    开发前的科普 我们的主app 叫 host app(宿主app) 可以这么理解 我们开发的小组件叫widget(挂件,小部件) 我们简称 "小组件"吧,其实就是Extension的一种....开发之前要了解的是,小组件不是小app,不能做太多的对数据的增删改查的类似的复杂操作,经过我们探索发现最多能当做UI视图使用,也能发网络请求,你把它当成UIView就好,并且还仅支持单向数据流(基于TimeLine...在笔者肤浅的认知中认为,实现Extension和app通讯有几种方式 NSUserDefault 共享数据 openURL类似的widgetURL方式通过专用的scheme协议跳转app传递参数 这两种有使用限制和场景约束...今天我们来认识和解锁一种新的方式 AppIntent也可以实现在Extension和app之间传递事件,不用拉端.实现进程间通讯 根据上述问题2中的代码我们点击一个Button会自动调用KWAppWidgetConfigurationLikeIntent...这里的代码是在主App中实现,因为作为数据提供方,主app有对小组件频控的能力和责任.

    1.6K21

    酷我音乐iOS小组件适配开发实践

    开发前的科普 我们的主app 叫 host app(宿主app) 可以这么理解 我们开发的小组件叫widget(挂件,小部件) 我们简称 "小组件"吧,其实就是Extension的一种....开发之前要了解的是,小组件不是小app,不能做太多的对数据的增删改查的类似的复杂操作,经过我们探索发现最多能当做UI视图使用,也能发网络请求,你把它当成UIView就好,并且还仅支持单向数据流(基于TimeLine...在笔者肤浅的认知中认为,实现Extension和app通讯有几种方式 NSUserDefault 共享数据 openURL类似的widgetURL方式通过专用的scheme协议跳转app传递参数 这两种有使用限制和场景约束...今天我们来认识和解锁一种新的方式 AppIntent也可以实现在Extension和app之间传递事件,不用拉端.实现进程间通讯 根据上述问题2中的代码我们点击一个Button会自动调用KWAppWidgetConfigurationLikeIntent...这里的代码是在主App中实现,因为作为数据提供方,主app有对小组件频控的能力和责任.

    1.8K30

    iOS8新特性扩展(Extension)应用之一——Today扩展

    iOS8新特性扩展(Extension)应用之一——Today扩展 一、理解扩展 1、简介         基于iOS系统的安全性考虑,其应用的数据存储是通过沙盒模式进行的,要实现应用之间的数据共享十分困难...在iOS8系统中,apple为我们提供了一个革命性的功能:扩展。我们可以通过扩展来使app间数据甚至功能进行共享。...二、ToDay扩展的创建         扩展是一个独立的构成,和其有关的两个概念是宿主APP和主机APP,宿主APP是扩展存放的地方,与扩展可以实现资源共享,主机APP是扩展运行的程序,例如ToDay...在Application Extension中有上面提到的6中扩展,我们选择Today。 这是我们的项目中会多了一个扩展的文件夹: ?...xcode会让我们选择运行扩展的主机程序,因为这是一个today类型的扩展,我们选择Today: ? 运行后,在系统的通知抽屉中,就会出现我们的这个扩展: ?

    57920

    WWDC22总结:苹果头显「又鸽了」,M2芯片「终于来了」,系统全家桶「更加实用了」

    用户只需在锁屏界面长按就能进入锁屏编辑功能,自定义锁屏时钟、字体、壁纸,甚至在锁屏上安放各种实用的小部件。 为此,苹果带来了各类醒目的字体及颜色、时间显示样式、小部件、以及各种预设好的锁屏主题。...除了“自定义锁屏界面”这个最大的更新以外,iOS 16的其他小更新则凸显在实用性方面。 例如,短信APP可以编辑已发送的短信,可以撤回,可以将需要提醒的短信设置为未读。...watchOS 9:运动和健康监测,更加专业 与iOS 16一样,这次watchOS 9也带来了外观的改变,包括多款全新表盘主界面以及全新设计的Siri界面。...但新系统将侧重点放在了运动和健康监测上,更加突出可穿戴设备的专业性。 在运动监测功能上,watchOS 9添加了步长、触地时间和垂直振幅这三个跑步指标,并可实现运动目标心率区间追踪、运动功率监测等。...尽管运动和健康监测功能在智能穿戴设备上并不稀奇,但得益于Apple Watch的硬件实力,watchOS 9可以让监测变得更加精准。

    92530

    破船原创——关于“watch OS 2的一些东西”

    运动场景:经常跑步的人们在跑步过程中,经常需要做计时、速度、距离等运动数据的统计,并实时反馈,一般人们用手机上的运动软件比较多,每次看速度、时间等都是从兜里面掏出手机,然后解锁屏幕,再看相关运动数据。...当然,还有很多应用场景在 Apple Watch 上都能带来绝佳的体验,例如提醒类应用(天气预报、来电提醒、用药提醒)、健康类应用(实时反馈个人身体健康数据)等,在这里就不一一罗列了。...Part 2 WatchKit 架构变化 在 watchOS 1 做过开发的人,都应该熟悉如下这张图: 如上图所示,在 watchOS 1 上面做开发,Apple Watch 应用程序由两部分构成:Watch...那么,在 watchOS 2 中,WatchKit 的架构发生了比较重大的变化,我们先来看看下面这张图: 从上面的图中,可以很明显地看出,苹果把原来运行在 iPhone 手机上的 WatchKit Extension...苹果虽然对框架做了重大的调整,但是也考虑了开发者的跟进成本,开发者跟 watchOS 1 中的开发基本一样,WatchKit App 中依旧是存放资源和 Storyboard,而 WatchKit Extension

    71130

    你想知道的 Watch App 开发

    WatchKit extension bundle 位于 Watch app bundle 内,包含用于管理这些界面和响应用户互动的代码。这两个包统称为 Watch app。...Watch app 是watchOS 工程的核心,它提供了应用程序的主界面,但这不是用户唯一看到的。Watch app 还可以提供自定义通知和复杂功能。...虽然是可选的,但是通知和复杂功能是与用户通信的重要方式,并且通常是用户最常使用的界面。 The Watch App The Watch App 是用户从 Apple Watch主屏幕中启动的应用程序。...在watchOS中,您可以直接在 WatchKit extension 使用 User Notifications framework 来计划和处理通知。此框架支持创建基于时间和基于位置的本地通知。...User Interfaces on watchOS 在设计Watch app ,通知和并发界面时, Apple Watch 的个性化设计需要一种独特的方法。

    1.2K20

    2年内彻底摆脱英特尔,苹果重磅发布自研Mac芯片,并对“五大系统”再升级

    实际上,“安卓化”并不是从今年开始的,至少去年苹果就“跟随”安卓为iOS 13添加了Dark Mode功能,即深色模式,只是今年的“安卓化”更加多元,包括App资源库、桌面小部件、画中画,以及与“微信小程序...“苹果小程序”方面,即全新的App Clip功能,理念与微信小程序很相似,就是“完整版应用的快捷方式”。...· watchOS 7 此次watchOS的更新依旧将重点放在了“健康”上,如新增了姗姗来迟的睡眠监测功能。...地图方面,watchOS 7新增了骑行导航功能,包括时间预览和逐项导航等功能,还可智能匹配最优路线。...除了可自动识别用户的iPhone、iPad 或是 Mac 等设备外,它还可以在不同的苹果设备之间无缝转换,无需在进行手动操作。

    1.2K30

    苹果M2芯片亮相:集成200亿晶体管,性能提升18%!但iPhone:我咋成摄像头了

    大数据文摘出品 望眼欲穿! 作为苹果公司备受关注和期待的活动之一,WWDC终于带着新软件来了! iOS?iPadOS?macOS?watchOS?tvOS?AR?VR?...与iOS 15不同,在经过了夏天beta测试之后,iOS 16将提供更多个性化选项、改进的锁屏和小部件,以及一些受欢迎的消息更新。 自定义锁屏是可以说是iOS 16的核心。...多名用户能够共同浏览同一网站,利用共享标签页组,亲友同事之间可以在Safari上分享收藏网站,也可以查看对方正在浏览的标签页。...iPadOS 16也支持在锁屏界面添加小部件,使用背景图像调整景深等功能,壁纸库中也新增了诸多壁纸新选项以及解锁动画。...在运动方面,watchOS 9将支持通过机器学习和传感器,单独监测到躯干运动,增加类似跑姿、步幅数据的检测,同时训练强度可以实时反馈显示,在运动过程中就会通过声音、震动提醒你运动状态。

    2.4K30

    IOS小组件(8):App与Widget数据共享

    组件和主App之间其实就是不同App的关系,所以也无法通过userdefaults.standard来传数据,苹果为了在不打破沙盒的前提下能够传数据,就想出了App Group的方法。...widget和app之间实现数据共享;为了便于后续操作,请先确保你的开发者账号在Xcode上处于登录状态。...完成后保存数据到App Group容器中的文件中,以供today extension扩展进行数据使用。...只要将宿主app杀掉后重启启动宿主app,today extension 中已经显示的数据就完全没有了。单纯将宿主app杀掉不重启,today extension的任然hi显示之前的内容。...today extension展示的数据量较少,在合适的时候将其需要的数据搬运到app group中!

    3.4K20

    iOS15适配本地通知功能及语音播报探索

    ,所有提交至 App Store 的 iOS 和 iPadOS app 都必须使用 Xcode 13 和 iOS 15 SDK 构建。...Xcode 13 需在 macOS 11.3 及以上版本运行,支持 iOS 9,tvOS 9,watchOS 2 及以上系统设备调试; 也正式支持了 Vim。...利用Service Extension,在收到服务端的推送的时候,按照顺序发送本地通知 本地通知的sound就是对应的音频拆分 将收到的推送的sound设置为nil,避免打断本地推送的语音播报。...,放到主程序的包里 利用Service Extension,在收到服务端的推送的时候,按照顺序发送本地通知 本地通知的sound就是对应的音频拆分 问题:iOS12.1之后利用本地推送实现消息的语音播报...The main bundle of the current executable. sounds除了播放工程主目录(main bundle,打包时候就内置在项目中)和Library/Sounds,还可以播放

    4K30

    iOS开发常用之测试调试、动态更新

    snoop-it -snoop-it比UIViewController-Swizzled好用,代码托管在谷歌上。 版本 - 版本比较小工具。...掉帧通常是可见的,但是很难区分55fps和60fps之间的不同,而KMCGeigerCounter可以让你观测到掉掉5帧的情况。...是不可多得地学习WatchKit的示例式教程(1.如何创建一个简单的交互式计数器; 2.如何从手表上控制iOS应用程序; 3.如何在WatchKit应用程序和iOS应用之间共享数据; 4,如何创建一个拥有不同背景色的数字时钟...该示例学习性非常强.-- swift watchOS-2-Sampler - 基于watchOS 2若干新特性,写了相应的示例代码供大家学习,参考。...CocoaMultipeer - CocoaMultipeer这个开源框架支持OS X,iOS和watchOS设备间的点对点通信,解决watchOS和Mac之间通信的方案还是很有用的。

    4.2K20

    c语言之共用体union、枚举、大小端模式

    在这种格式中,字数据的高字节存储在低地址中,而字数据的低字节则存放在高地址中。 b、什么叫小端模式(little-endian)?...与大端存储格式相反,在小端存储格式中,低地址中存放的是字数据的低字节,高地址存放的是字数据的高字节。...这个短整型变量在内存中的存储在大小端模式由下表所示: 地址偏移 大端模式 小端模式 0x00 12 34 0x01 34 12 说明: 由上表所知,采用大小模式对数据进行存放的主要区别在于在存放的字节顺序...(2)所以在通信双方需要有一个默契,就是:先发/先接的是高位还是低位?这就是通信中的大小端问题。 (3)一般来说是:先发低字节叫小端;先发高字节就叫大端。...(4)在通信协议中,大小端是非常重要的,大家使用别人定义的通信协议还是自己要去定义通信协议,一定都要注意标明通信协议中大小端的问题。

    2.6K20

    解析SwiftUI布局细节(一)

    CollectionViewCell或者TableViewCell的我们会做一个基本的分类,规划一下我们需要几个类型的Cell等等 3、把它们进行一个组装,处理相应的各种代理或者事件回调等等 4、处理数据和视图进行数据对接...当然这个横向和纵向也是相对你手机屏幕的是竖直还是水平的,不是绝对的,这个理解一下也容易!...= nil 这是个可选类型的参数,它控制的是容器里面子视图之间的间距。...我们要再往深入挖掘一下,因为后面还有个问题需要我们注意,在ViewBuilder的最后一个Extension中的buildBlock的代码是这样的 @available(iOS 13.0, macOS...10.15, tvOS 13.0, watchOS 6.0, *) extension ViewBuilder { public static func buildBlock<C0, C1,

    2.7K10

    Today Widget 抢占比桌面更重要的地盘 - 腾讯ISUX

    在iOS8 Extension正式面世后没多久,格瓦拉就上架“观影小伙伴”的feature,并直接全盘搬到Widget中,在电影开场前3小时启动电影票订单的服务流程(从普通的电影资讯轮播变身为订单跟进)...首先Todo和Timetable等工具是商务人士或效率偏执狂的最爱。(其实给女生提供一些有可爱的或Art deco风的memo小挂件也是挺不错的……) ?...对于健康控和运动控来说,把健康数据展示在Today View上应该会有相当大的需求。 ?...Today Steps 图形化展示运动数据(图片来自App Store) 然后流量与容量,对部分人群来说,也是相当重要的! ?...也有不少敬业的app,则是专门为Today View切割出了最为适合的小模块。 ? kindle的阅读进度 ?

    68820

    c语言之共用体union、枚举、大小端模式

    在这种格式中,字数据的高字节存储在低地址中,而字数据的低字节则存放在高地址中。 b、什么叫小端模式(little-endian)?...与大端存储格式相反,在小端存储格式中,低地址中存放的是字数据的低字节,高地址存放的是字数据的高字节。...这个短整型变量在内存中的存储在大小端模式由下表所示: 地址偏移 大端模式 小端模式 0x00 12 34 0x01 34 12 说明: 由上表所知,采用大小模式对数据进行存放的主要区别在于在存放的字节顺序...(2)所以在通信双方需要有一个默契,就是:先发/先接的是高位还是低位?这就是通信中的大小端问题。 (3)一般来说是:先发低字节叫小端;先发高字节就叫大端。...(4)在通信协议中,大小端是非常重要的,大家使用别人定义的通信协议还是自己要去定义通信协议,一定都要注意标明通信协议中大小端的问题。

    91740
    领券