适用于 iOS 14+ 的动态照片小组件应用
动态图片小组件
这是一个项目,用于构建您自己的动态图片小组件应用程序,适用于 iOS 14 及更高版本。它将随机显示您自己的照片,这些照片存储在 github 存储库中。
小组件应用程序的工作方式如下:
0 先决条件
您必须拥有有效的 Apple Developer 帐户才能将此应用程序构建到您的 iPhone 中。
1 构建您自己的应用程序
1.1 为照片设置 Github 存储库
克隆demo_photos_gallary 存储库。删除.git
文件夹,重新初始化它并将其推送到您自己的 github 帐户。将您的照片放在photos
文件夹中,照片的名称应与此模式匹配:
Pattern: yyyy-MM-dd_title_seq.type
eg: 2023-08-17_Sunrise_1.jpg
使用 python 脚本对照片进行标准化,以便在小组件中更好地显示:
pip3 install pillow # run once to install dependencies
python3 ./tool.py
自动生成的照片将被放置在min_photos
文件夹中。自动生成元信息将存储在data.json
文件中。
将所有更改推送到 github,您将在此处获得两件事:
-
1 通往您
data.json
文件的链接如下,请记住替换您自己的 github 用户名https://raw.githubusercontent.com/langinteger/demo_photos_gallary/main/data.json
-
2 指向您的自动生成的照片文件的链接如下,请记住替换您自己的 github 用户名
https://raw.githubusercontent.com/langinteger/demo_photos_gallary/main/min_photos/2021-10-16_TangLang Mountain_1.jpg
1.2 构建您自己的 iOS 应用
克隆此存储库,在 XCode 中打开WidgetForLang.xcodeproj
并:
-
用如下所示的链接替换
./LangWidget/LangWidget.swift
中metaUrlString
的值以指向您自己的data.json
文件:https://raw.githubusercontent.com/xxx/demo_photos_gallary/main/data.json
-
用如下所示的链接替换
./LangWidget/LangWidget.swift
中pictureBaseUrl
的值以指向您自己的照片链接前缀:https://raw.githubusercontent.com/xxx/blog_photos/main/min_photos/
使用您的 Apple Developer 帐户登录,并正确设置WidgetForLang
和LangWidgetExtension
目标的唯一捆绑标识符,现在您可以将应用程序构建到您的 iPhone 中。
2 已知问题
2.1 iOS 小部件刷新预算
在./LangWidget/LangWidget.swift
中,代码
let nextDate = Calendar.current.date(byAdding: .minute, value: 1, to: currentDate)!
旨在每分钟刷新一次小部件上显示的照片。当您将应用程序构建到已插入计算机的 iPhone 上时,它可能会以这种方式工作。但在日常使用中,iOS 会限制每个小部件的每日刷新预算。典型的每日预算为 45 – 70,因此您不应期望每分钟刷新一次。您可以调整代码以满足您自己的要求。
2.2 隐私
由于在步骤 1.1 中创建的照片存储库旨在公开,因此请不要上传您希望保密的照片,或者其他人可以像您一样访问这些照片。
3 待办事项
- 使
metaUrlString
和pictureBaseUrl
可配置 - 当无法访问网络时显示缓存的图片