小编chr*_*rum的帖子

今天重绘时,扩展视图会闪烁

根据Apple文档,"为了帮助您的窗口小部件查看最新版本,系统偶尔会捕获窗口小部件视图的快照.当窗口小部件再次可见时,将显示最新的快照,直到系统将其替换为视图的实时版本".

然而,我所看到的是,在准备实时视图之前,快照将从屏幕上删除.这会产生闪光效果,其中旧快照从屏幕上取下,视图在一瞬间为空白,然后出现新视图.

开发人员是否负责在快照和实时视图之间无缝转换?如果是这样,那背后的策略是什么?我认为没有办法直接控制这种转变.

通过将数据加载移动到widgetPerformUpdateWithCompletionHandler并在viewWillAppear:中保持绘图,我能够大大减轻这种影响,但我仍然会在通知中心每隔15(左右)打开一次闪存.

ios ios8-today-widget

12
推荐指数
1
解决办法
2962
查看次数

iOS 10服务扩展不一致

虽然这里与另一个问题有相似之处: iOS 10不会调用Notification Service Extension

我希望提出一个具体的不当行为的具体问题.考虑以下推送负载:

{  
   "service-alert":{  
       "title":"[Service]Title",
       "subtitle":"[Service]Subtitle",
       "body":"[Service]Body may be substituted."
   },
   "image":"https://some.small/thumbnail.jpg",
   "aps":{  
       "badge":1,
       "alert":{  
          "title":"[Default]Title",
          "subtitle":"[Default]Subtitle",
          "body":"[Default]A simple body of text."
       },
       "sound":"default",
       "mutable-content":1
   }
}
Run Code Online (Sandbox Code Playgroud)

("service-alert"字典用于测试支持它的设备的默认警报文本上的覆盖)

我正在我的iOS 10设备(iPhone 6+)上调试Xcode,我在服务扩展中设置了一个断点,以验证它是否有机会在呈现之前修改推送.

当我发送推送时,有时会触发服务扩展(断点命中),我可以验证推送有效负载是否正确,并且显示的推送仅显示默认的"aps"有效负载.没有图像.没有修改过的标题/副标题/正文.

我的断点serviceExtensionTimeWillExpire没有被击中.通知机制似乎"正常"但结果不正确.

当我再次发送完全相同的推送时,它可以工作.
图像从"图像"URL加载,修改后的"服务警报"文本按设计显示.有时我必须在它工作之前发送相同的推动2或3次,但之后它似乎是一致的.因此,如果我看到修改过的通知一次,那么从每一次推送测试的那一点看起来都能正常工作.

我觉得,但是还没有确定的数据支持,一段时间不活动会导致服务扩展被刷新,并且在被调用时唤醒太慢.如果是这样,这会使它变得毫无用处,因为当收到推送时它永远不会完全清醒.

目前的环境:

  • Xcode 8.2 beta(8C30a)
  • iOS 10.2测试2,3和4
  • 调试方案

任何人都可以在iOS 10测试版和/或非测试版上确认/拒绝此行为吗?我是否发现了10.2错误,或者这是"正常行为?"

iphone xcode apple-push-notifications ios serviceextension

6
推荐指数
1
解决办法
520
查看次数

没有扫描的CBCentral连接到CBPeripheral

我在7.1上有两个iOS设备,一个用作CBCentral,另一个用作CBPeripheral.这两个设备都运行我自己创建的软件,因此所有UUID/CBService/CBC特性都由我生成,并且所有参数都是固定的并且始终是已知的.

同样,两个设备都可以访问共享服务器,以存储我可能想要的任意数据.

鉴于我掌控整个生态系统,有没有办法让CBCentral设备连接到CBPeripheral设备而无需先拨scanForPeripheralsWithServices:打电话?从某种意义上说,我希望在两个设备相互接触之前,向中心"教导"外围设备的存在.

也许CBPeripheralManager单元可以将一些数据或值发布到CBCentralManager单元可以提取的服务器,然后直接分配/初始化它自己的CBPeripheral对象以供使用connectPeripheral:options:

ios core-bluetooth ios7

4
推荐指数
1
解决办法
1319
查看次数