首页 > 其他分享 >在iOS应用中使用实时活动与灵动岛

在iOS应用中使用实时活动与灵动岛

时间:2023-12-30 21:31:56浏览次数:28  
标签:Text iOS 实时 灵动 context 活动 public

在iOS应用中使用实时活动与灵动岛

iOS16系统引入了实时活动与灵动岛相关的API。实时活动API能够让用户在桌面直接浏览到应用程序所提供的实时性较高的信息,例如比赛的比分信息,外卖的配送进度信息,票务信息等。在支持灵动岛的设备上,实时活动配合灵动岛,更是能带给用户沉浸式的信息获取体验,在某些特定应用场景下非常有用。

1 - 引言

从iOS16开始,实时活动能够在锁屏、待机桌面以及灵动岛等位置提供信息更新展示。在某些特定场景下,实时活动可以提供给用户几个小时内掌握实时事件、活动或任务更新。常见的应用场景有:

- 外卖类应用实时提供用户配送进度,剩余时间。

- 赛事类应用的实时分数。

- 健身类应用与可穿戴设备的实时体能状态更新。

实时应用将会展示在设备的:

- 锁屏页面

- 通知列表顶部

- 在支持灵动岛的设备上,在灵动岛位置展示

- 不支持灵动岛的设备上,实时活动的更新会在屏幕顶部弹出通知

- 待机显示时,实时活动会充满整个屏幕

需要注意,灵动岛的可可显示区域优先,在开发实时活动时,在设计上可以参考下面的最佳实践文档:

https://developer.apple.com/cn/design/human-interface-guidelines/live-activities/

2 - 开发实时活动与适配灵动岛

首先,要支持实时活动需要在工程中创建一个Widget Extension,实时活动本身也是小组件的一种。如下图所示:

需要注意,在创建Widget小组件时,将Include Live Activicy选中,如下图:

虽然实时活动也是小组件,但其他普通的Widget区别很大,小组件是通过Timeline来进行更新,而实时活动只能通过App触发更新或特殊Push更新和关闭;小组件需要用户手动添加使用,而实时活动则是由主App进行开启。创建好Tatget后,模版自带3个文件,其中LiveWidgetLiveActivity中实时活动的核心框架代码,我们做些简单的修改,如下:

import ActivityKit
import WidgetKit
import SwiftUI
// 状态结构体
struct LiveWidgetAttributes: ActivityAttributes {
    public struct ContentState: Codable, Hashable {
        // 动态的状态,有App或Push来触发更新
        var score: String
    }

    // 静态的状态,实时活动开启时指定
    var name: String
    var teamA: String
    var teamB: String
}

// 编写SwiftUI页面
struct LiveWidgetLiveActivity: Widget {
    var body: some WidgetConfiguration {
        ActivityConfiguration(for: LiveWidgetAttributes.self) { context in
            // Lock screen/banner UI goes here
            VStack {
                Text(context.attributes.name)
                Text("

标签:Text,iOS,实时,灵动,context,活动,public
From: https://blog.51cto.com/u_11643026/9042149

相关文章

  • 监控易运维:实时监控UPS、空调、服务器、存储和交换机运行状态
        客户需求:一个中小企业,IT基础资源包括一套UPS、两台空调、5台服务器、两台存储、4台交换机。现在,需要一套运维解决解决方案。根据以上需求,我们为您提供以下监控易解决方案:一、设备监控与接入1. UPS监控:我们将为您的UPS设备接入监控易系统,实时监控电池状态、负载情况、运......
  • flutter ios swift avplayer 播放器自动播放下一集
    使用监听监听结束事件importFoundationimportAVKitimportMediaPlayerimportFlutterclassFlutterAVPlayerView:NSObject,FlutterPlatformView{privatevar_flutterAVPlayerViewController:AVPlayerViewControllerprivatevarurlArray:[URL]=[]......
  • MES喷码机联动:MES实时下发设备生产参数及信息,实现从上层系统控制设备输出
    随着工厂数字化的不断转型,设备单机工作已逐渐无法满足工业工厂互联网信息化数字化升级需求,从上层工单拉动设备生产参数的变化以及信息输出已经成为必然趋势。开发工具:C#WPF数据库:sqlite3MES喷码机联动下发工具:1.自动读取文本文件内容发送至喷码机,对接上层系统,如mes等。2.可......
  • iOSapp开发怎么分享小程序?
    Hello,大家好我是咕噜铁蛋!随着移动互联网的迅猛发展,小程序作为一种新型的应用形态,已经逐渐成为移动开发领域的新宠。对于iOS开发者来说,如何将自己的APP与小程序进行无缝对接,为用户提供更加便捷的服务,成为了一个值得探讨的话题。今天铁蛋讲为大家详细解读iOS开发APP如何分享小程序。......
  • mac安装appium(android/ios)
    一.(android)前提:1.安装java2.安装homebrew3.安装xcode4.安装git5.安装androidsdk官网https://www.androiddevtools.cn/  将下载的AndroidSDK解压,将得到如下目录。(具体安装步骤可以阅读SDKReadme.txt)阅读SDKReadme.txt文档得知:Inordertostartde......
  • iOS 常见问题总结及解决方法
    SDK如何初始化在您需要使用融云SDK功能的类中,import相关头文件。#import<RongIMKit/RongIMKit.h>如果是Swift的话,需要在您工程的Bridging-Header.h文件中加入SDK的引用#import<RongIMKit/RongIMKit.h>请使用您之前从融云开发者控制台注册得到的AppKey,通过RCIM的......
  • VMware ESXi 8.0U2 macOS Unlocker & OEM BIOS 标准版和厂商定制版
    VMwareESXi8.0U2macOSUnlocker&OEMBIOS标准版和厂商定制版ESXi8.0U2标准版,Dell(戴尔)、HPE(慧与)、Lenovo(联想)、Inspur(浪潮)等定制版作者主页:sysin.org2023-09-22,VMwarevSphere8.0U2发布,本站定制镜像相应更新。新增功能详见:VMwarevSphere8Update2新增......
  • Cisco® Catalyst® 8000V 边缘软件(虚拟路由器)IOS XE 17.12.1 发布
    Cisco®Catalyst®8000V边缘软件(虚拟路由器)IOSXE17.12.1发布CiscoCatalyst8000vEdgeSoftware,IOSXEReleaseDublin-17.12.1aEDCisco®Catalyst®8000V边缘软件-虚拟路由器作者主页:sysin.orgCisco®Catalyst®8000V边缘软件(Catalyst8000V)是一款虚拟路由......
  • Cisco Catalyst 8000 边缘平台系列 IOS XE 17.12.01 发布
    CiscoCatalyst8000边缘平台系列IOSXE17.12.01发布CiscoCatalyst8000SeriesEdgePlatforms,IOSXEReleaseDublin-17.12.01aEDCiscoCatalyst8000边缘平台系列作者主页:sysin.orgCiscoCatalyst8000:随心所欲访问位于云、数据中心和边缘的混合型应用和多云应用。特性......
  • Cisco Secure Client 5.1.1.42 (macOS, Linux, Windows & iOS, Andrord) - VPN 和远程
    CiscoSecureClient5.1.1.42(macOS,Linux,Windows&iOS,Andrord)-VPN和远程访问客户端思科安全客户端(包括AnyConnect)作者主页:sysin.orgCiscoSecureClient(includingAnyConnect)思科安全客户端(包括AnyConnect)安全访问只是开始您的团队需要轻松访问公司资源和私有应......