uni-app总结6-配合iOS App项目开发apple watch app

假设你已经用uni-app开发好了一个iOS端的app,现在想要开发一个配套的apple watch app。改怎么去开发呢?是不是一头雾水,这篇文章就会介绍一些apple watch app开发的知识以及如何在uni-app开发的iOS app基础上去开发配套的watch app

一、apple watch 开发知识

apple watch app类型

首先,我们来了解下apple watch app有哪些类型。

 我们在新建一个WatchOS app的项目时可以看到,watch app有2种类型。一个是独立的watch app(Watch-only app),一个是依赖iOS app的watch app(with Companion iOS App),那么他们有什么区别呢?我将从几个不同的角度去介绍:

  • 安装

        watch-only的只能通过apple watch上的appStore去下载安装

        with iOS App的,可以通过手机上Watch应用去安装可使用的watch app,当然也可以通过appStore下载

  • 开发

        watch-only新建项目时只有watchKit app和watchKit extension。

        with iOS App的则会有一个iOS app的target

UI框架说明

watchKit app虽然可以通过UIKit,使用swift或者OC来开发,但是官方建议的是使用SwiftUI这个新的UI框架开发。因为 SwiftUI 具有声明式编程、更简洁的语法、更好的跨平台性以及对数据绑定和响应式编程的良好支持等优点,特别适合手表、VR眼镜这种屏幕较小、交互相对简单的设备。

swiftUI的语言和swift还是有较大的区别的,UI控件的使用、生命周期的管理等都大不一样,还是需要各位同学去系统的学习一下。

数据请求类型

有一部分watch app是工具类的App(比如闹钟),不需要获取网络数据。

有一部分watch app是只需要获取健康数据(步数、心率、睡眠等),通过原生的HealthKit即可获取。

有一部分watch app需要联网获取在线数据,就需要通过Alamofire等网络库或者原生的URLSession来实现数据请求。

还有一种特殊的数据获取方式,就是通过Watch Connectivity实现watch app和手机app数据交换,数据可以通过手机app请求拿到(在线或者其他方式),然后传输给watch app。watch app也可以传输数据给手机app。下面会详细讲下这个Watch Connectivity。

Watch Connectivity

这里我们是有2个设备,一个watch,一个iphone。对应项目里是有一个app的target,一个watchKit的target。

  • WCSessionManager单例封装

首先我们来封装一个Manager来管理数据的发送、接收以

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/86058.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/86058.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

神经网络的本质 逻辑回归 python的动态展示

神经网络的本质 逻辑回归 python的动态展示 逻辑回归运行图相关代码什么是逻辑回归和ai的关系逻辑回归公式流程与实际案例解析**一、逻辑回归的数学公式流程**1. **线性组合阶段**2. **激活函数(Sigmoid)**3. **概率预测与决策**4. **交叉熵损失函数**5.…

sql server中的with 锁各种区别

📘 SQL Server 常用 WITH (Hint) 用法与组合场景对照表 Hint 组合作用说明常见用途是否阻塞他人是否读脏数据备注WITH (NOLOCK)不加共享锁,允许读取未提交数据报表导出、大数据分页❌✅等价于 READ UNCOMMITTED,脏读风险高WITH (HOLDLOCK)保持…

KES数据库部署工具使用

一、启动部署工具 Windows系统 #命令行 ${安装目录}/ClientTools/guitools/DeployTools/deploy.exeLinux系统 #命令行 [rootnode ~]# ${安装目录}/ClientTools/guitools/DeployTools/deploy二、环境配置 1.硬件要求 #都是最小配置 CPU:主流32或64位 内存&#…

TB62211FNG是一款采用时钟输入控制的PWM斩波器的两相双极步进电机驱动器

TB62211FNG是一款采用时钟输入控制的PWM斩波器的两相双极步进电机驱动器。该器件采用BiCD工艺制造,额定电压为40伏/1.0安培。片上电压调节器允许使用单一VM电源控制步进电机。 特点: • 双极性步进电机驱动器 • 脉冲宽度调制(PWM&#xf…

uni-app项目实战笔记24--uniapp实现图片保存到手机相册

前提条件:微信小程序要想实现保存图片到本地相册需要到微信公众平台--小程序--开发管理中配置服务器域名中的downloadFile合法域名: \uniapp提供了saveImageToPhotosAlbum API实现保存的图片到本地相册。下面是它的配置参数: 参数名类型必填…

面试题-定义一个函数入参数是any类型,返回值是string类型,如何写出这个函数,代码示例

在 TypeScript 里,要定义一个入参为any类型、返回值为string类型的函数,可参考下面几种实现方式: 1. 基础实现 直接把入参转换为字符串返回。 function anyToString(input: any): string {return String(input); // 使用String()进行类型转…

TensorFlow深度学习实战——Transformer模型评价指标

TensorFlow深度学习实战——Transformer模型评价指标 0. 前言1. 质量1.1 GLUE1.2 SuperGLUE1.3 SQuAD1.4 RACE1.5 NLP-progress2. 参数规模3. 服务成本相关链接0. 前言 可以使用多种类型的指标评估 Transformer 模型。在本节中,我们将学习一些用于评估 Transformer 的关键因素…

linux内核学习(一)---内核社区介绍及补丁提交

目录 一、引言 二、内核源码 三、内核社区 ------>3.1、社区的组织架构 ------>3.2、内核社区的工作方式 ------>3.3、内核社区核心网站 ------------>3.3.1、Linux Kernel 官网 ------------>3.3.2、Linux Kernel 邮件列表(LKML) ------------>3.3…

轻量级web开发框架之Flask web开发框架学习:get请求数据的发送

Flask是一个使用 Python 编写的轻量级 Web 应用框架,简介灵活,可快速构建开发框架。 协作流程示例 客户端请求 → Web服务器(Nginx) → WSGI服务器(Gunicorn/uWSGI)↓WSGI协议传递请求数据(env…

Vue 3 异步三剑客:Suspense、async setup() 和 await 的戏剧性关系,白屏的解决

文章目录 🎭 Vue 3 异步三剑客:Suspense、async setup() 和 await 的戏剧性关系,白屏的解决🎬 角色介绍🎭 正常演出流程(有 Suspense 时)💥 灾难场景(缺少 Suspense 时&a…

【JavaScript-Day 48】告别 Ajax,拥抱现代网络请求:Fetch API 完全指南

Langchain系列文章目录 01-玩转LangChain:从模型调用到Prompt模板与输出解析的完整指南 02-玩转 LangChain Memory 模块:四种记忆类型详解及应用场景全覆盖 03-全面掌握 LangChain:从核心链条构建到动态任务分配的实战指南 04-玩转 LangChai…

BUUCTF在线评测-练习场-WebCTF习题[极客大挑战 2019]Knife1-flag获取、解析

解题思路 这题没有什么解题思路,打开靶场,标题是白给的shell 页面显示了 eval($_POST["Syc"]); 这是php webshell命令,密码为Syc,可直接通过该命令连接,根据标题提示,直接尝试用蚁剑连接 连接成…

Qt—(Qt线程,Qt进程,,QT与sqlite数据库)

一 Qt线程与进程概述 线程与进程对比 特性线程 (QThread)进程 (QProcess)内存空间共享父进程内存独立内存空间创建开销小 (几MB)大 (几十MB)通信方式共享内存/信号槽管道/套接字/文件崩溃影响导致整个进程终止仅自身终止适用场景高并发任务、计算密集型隔离第三方应用、安全需求…

计算机视觉阶段一:CV入门基础

目录 学习目标: 一、核心知识点 二、实用工具推荐 三、学习内容与步骤 1.环境搭建 2.图像获取与显示 3 图像基础处理 4 图像几何变换 5 图像像素操作 四、实战任务建议 实战 1:图像加载 显示 保存 实战 2:灰度图 边缘检测 图…

新增MCP接入和AutoAgent,汉得灵猿AI中台1.6版正式发布!

汉得灵猿(大圣)AI中台1.6版本,经过数月迭代,现已正式发布! 新版本最被期待的新功能,无疑是4月份预告的MCP接入,而令人同样激动的另一项新功能,则是AutoAgent动态规划智能体。除了两…

总结汇报思路

一、明确汇报目标 受众需求:领导/客户/团队最关心什么?(结果?问题?下一步计划?) 核心目的:展示成果?争取资源?总结经验?解决问题? 时…

文件锁的艺术:深入解析 `fcntl(F_SETLK/F_GETLK)`

引言:在共享资源时代守护数据一致性 在多进程/多线程的应用场景中,文件作为一种共享资源常常面临被并发访问的挑战。想象一个数据库系统,多个客户端可能同时尝试修改同一数据文件;或者一个配置文件,需要确保在更新时不…

一个免费的视频、音频、文本、图片多媒体处理工具

大家好,我是小悟。 给大家推荐一款可以免费使用的视频、音频、文本、图片处理工具,名字叫百创工坊,不用下载,不用注册,有免费的用就赶紧薅吧。 视频工具 提取音频:从视频中提取音频文件,支持多…

在 ef core 中操作复杂类型的序列化和反序列化时,如何全局设置 utf-8 编码避免中文字符被转义?

我们在使用 Entity Framework Core(EF Core) 时,如果希望 全局设置 JSON 序列化和反序列化使用 UTF-8 编码,通常需要配置 System.Text.Json 的默认行为,因为 EF Core 6.0 及以上版本默认使用 System.Text.Json 进行 JS…

WPF CommunityToolkit.Mvvm 信使 (ObservableRecipient)

WPF CommunityToolkit.Mvvm 中的 ObservableRecipient 是什么? ObservableRecipient 是 .NET Community Toolkit MVVM 库中的一个核心类,继承自 ObservableObject。它专为 WPF 应用设计,提供以下核心功能: 基础数据绑定支持&am…