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

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

时间:2024-01-09 10:03:22浏览次数:21  
标签:Text iOS 实时 灵动 context 活动 public

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

1 - 引言

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

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

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

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

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

- 锁屏页面

- 通知列表顶部

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

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

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

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

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

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

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

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

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

在iOS应用中使用实时活动与灵动岛_系统_02

虽然实时活动也是小组件,但其他普通的 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/9156784

相关文章

  • 苹果IOS如何支持微信小程序分享
    各位同学们好!我是咕噜铁蛋!,我们经常需要与读者分享有关移动应用的使用方法和技巧。微信小程序是一种便捷的应用形式,可以在微信内部直接使用,而无需下载和安装。本文铁蛋讲详细介绍iOS苹果支持微信小程序类型分享的使用方法,帮助你更好地了解和利用这一功能,拓展你的内容传播渠道。一.什......
  • 数据流处理:实时数据分析的未来
    1.背景介绍数据流处理(DataStreamProcessing,DSP)是一种处理大规模实时数据的技术,它能够实时分析和处理大量数据,以便及时做出决策。随着互联网的发展,数据量越来越大,传统的批处理方法已经无法满足实时性要求。因此,数据流处理技术成为了实时数据分析的未来。在本文中,我们将深入探讨......
  • 数据可扩展性与实时数据处理:技术与案例
    1.背景介绍数据可扩展性和实时数据处理是当今数据科学和人工智能领域的关键技术。随着数据规模的不断增长,传统的数据处理方法已经无法满足需求。因此,数据可扩展性技术成为了必须研究的领域。同时,随着互联网的普及和人们对实时信息的需求不断增加,实时数据处理技术也成为了关键技术。......
  • 跨平台开发教学:构建同时支持iOS和Android的教育网校APP
    当下,教育行业也逐渐迎来了数字化转型的时代。构建一款支持iOS和Android的教育网校APP,不仅可以提供更好的用户体验,还能扩大应用的覆盖面,满足不同用户群体的需求。一、选择合适的跨平台开发框架在开始构建教育网校APP之前,我们首先需要选择一个合适的跨平台开发框架。ReactNative、Flu......
  • aspnetcore使用websocket实时更新商品信息
    先演示一下效果,再展示代码逻辑。中间几次调用过程省略。。。暂时只用到了下面四个项目1.产品展示页面中第一次通过接口去获取数据库的列表数据///<summary>///获取指定的商品目录///</summary>///<paramname="pageSize"></param>///<paramname="pageIndex"></p......
  • React Native 打包 App 发布 iOS 及加固混淆过程
       ReactNative打包App发布iOS及加固混淆过程摘要本文将介绍如何使用ReactNative打包并发布iOS应用到AppStore,并介绍了如何进行应用的加固和混淆过程。引言发布iOS应用到AppStore是一个相对复杂的过程,需要使用Mac电脑上的Xcode软件进行打包和上传......
  • 在UE中利用动捕数据实时驱动3D数字人,提升项目效率,无穿戴高精度易上手
    在虚拟现实、游戏开发、影视制作等领域中,动作捕捉技术与实时渲染引擎的结合已经越来越紧密。UE作为业界领先的3D创作平台,受到了众多开发者的青睐,DSFUN-UE插件能够帮助开发者更便捷地在UE平台中利用动捕数据进行高效创作,提升项目效率。*准备事项*1、软件DSFUN-采集端软件、DSFUN-......
  • Cisco Catalyst 8000v Edge Software, IOS XE Release Cupertino-17.8.1a ED
    作者主页:www.sysin.orgCiscoCatalyst8000:随心所欲访问位于云、数据中心和边缘的混合型应用和多云应用。特性和优势Catalyst8000边缘平台是一款基于意图的网络(IBN)平台,它将思科在软件定义广域网(SD-WAN)和安全领域的成果集于一身,旨在实现卓越的可扩展性、灵活性和安全连接......
  • 解决uniapp无法ios运行的问题
    问题描述设备无法运行uniapp应用设备无法运行uniapp应用的问题表现在哪些方面?如何判断iOS设备无法运行uniapp应用?iOS设备无法运行uniapp应用的原因有哪些?有哪些可能的解决方法解决方法:检查代码错误:首先要检查代码是否存在拼写错误、语法错误或者逻辑错误,这些问题都可能导致应用......
  • Avatar虚拟人(一):如何实时驱动虚拟人表情口型
    语音驱动虚拟人功能简介ZEGOAvatarSDK提供了语音驱动功能,通过声音的声波信息,实时驱动当前虚拟人物的嘴形变化,使得虚拟形象能够和真人一样进行自然的情绪表达。可广泛应用于社交互动、语聊直播等场景中。虚拟人语音驱动的前提条件在实现虚拟人“语音驱动”功能之前,请确保:已在项目......