适用于 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.swiftmetaUrlString的值以指向您自己的data.json文件:

      https://raw.githubusercontent.com/xxx/demo_photos_gallary/main/data.json
    
  • 用如下所示的链接替换./LangWidget/LangWidget.swiftpictureBaseUrl的值以指向您自己的照片链接前缀:

    https://raw.githubusercontent.com/xxx/blog_photos/main/min_photos/
    

使用您的 Apple Developer 帐户登录,并正确设置WidgetForLangLangWidgetExtension目标的唯一捆绑标识符,现在您可以将应用程序构建到您的 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 待办事项

  • 使metaUrlStringpictureBaseUrl可配置
  • 当无法访问网络时显示缓存的图片

4 感谢

GitHub

点击跳转