美文网首页
iOS之widget

iOS之widget

作者: A訫飛Flyme | 来源:发表于2017-06-29 16:41 被阅读30次

今天偶尔捣鼓手机,翻出这几个东西,就想做下,不废话上图。


1
2
3

最后一个最丑的就是我做的,没错最丑那个,没毛病😄。

准备

iOS extension的出现,方便了用户查看,比如用户可以在Today的widgets中查看应用的某些信息,然后点击进入相关的应用界面。

  • 添加Today Extension
    (什么?你没找到,创建target会吧,就是那。)


    w1.png
  • 代码书写
//很清楚简单,直接贴出来,其他的可以在storyboard自己设置
//通过extensionContext借助host app调起app
    [self.extensionContext openURL:[NSURL URLWithString:@"widgetsam://sam..."] completionHandler:^(BOOL success) {
        NSLog(@"open url result:%d 🐒 %d",success ,testNumber);
    }];
-(void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];
    //添加折叠效果
    self.extensionContext.widgetLargestAvailableDisplayMode = NCWidgetDisplayModeExpanded;
}
-(void)widgetActiveDisplayModeDidChange:(NCWidgetDisplayMode)activeDisplayMode withMaximumSize:(CGSize)maxSize {
    /**
     iOS10以后,重新规定了Today Extension的size。宽度是固定(例如在iPhone6上是359),所以无法改变;但是高度方面,提供了两种模式:
     
     NCWidgetDisplayModeCompact:固定高度,则为110
     
     NCWidgetDisplayModeExpanded:可以变化的高度,区间为110~616
     */
    if (activeDisplayMode == NCWidgetDisplayModeCompact) {
        self.preferredContentSize = CGSizeMake([UIScreen mainScreen].bounds.size.width, 110);
    } else {
        self.preferredContentSize = CGSizeMake([UIScreen mainScreen].bounds.size.width, 250);
    }
}
  • 关于数据共享
    扩展与宿主App是隔离的,那么数据共享就需要使用App Groups。

在App主Target的Capabilities栏,找到App Groups项,开启功能,并点击“+”符号添加一个共享的数据容器名称,例如group.xxx。然后会发现主Target和扩展Target目录中都生成了一个entitlements类型文件,记录了一个App Groups项。
这个共享的容器,就是存放扩展和宿主App共用的数据的空间。
为了正常编译,还需要前往开发者中心,编辑主应用和扩展的AppID,开启支持App Groups功能,类似于开启推送功能。
配置完成后,就是使用了。不管是采用UserDefaults、Archive、CoreData、FMDB、LevelDB等哪种数据存储或操作方式,只需要将路径指向共享的容器路径就可以。

App Groups

结束

相关文章

  • iOS widget 开发入门小结

    先感谢无私分享的博主大大们,一并附上一波入门贴: iOS开发之widget实现iOS开发之widget的简单实现从...

  • SwiftUI-Widget 使用及避坑指南

    iOS Widget简单介绍( 只介绍iOS 14 以后Widget相关内容): Widget 是 iOS 14 ...

  • IOS Widget 开发笔录

    IOS widget开发笔录 刚完成IOS widget开发,仿照UC头条,头条日报widget,附上效果图: 目...

  • iOS之widget

    今天偶尔捣鼓手机,翻出这几个东西,就想做下,不废话上图。 最后一个最丑的就是我做的,没错最丑那个,没毛病?。 准备...

  • iOS 多个widget调试问题

    iOS 多个widget调试问题 iOS widget 小组件开发 链接[https://www.jianshu....

  • iOS Widget开发小结

    从iOS8开始, 系统开始支持iOS Widget,就是如下图.Widget是Extension的一种Today,...

  • Flutter基本知识整理笔记

    与iOS开发的异同。例:Widget和UIView,交互等 生命周期,Widget 常用Widget介绍 路由跳转...

  • iOS之构建Widget

    伴随这iOS 8 系统多达4000项API更新而来同样还有Today Extension.而对iOS而言,有了To...

  • iOS14 widget 从0到1

    iOS14 widget特点 iOS14 widget可在屏幕进行任意摆放,可以堆叠节省空间,是手机主页更加个性化...

  • iOS10 today extension 填坑

    HeightThe height of the widget in iOS 10 is exactly 110 i...

网友评论

      本文标题:iOS之widget

      本文链接:https://www.haomeiwen.com/subject/ewtvcxtx.html