Nissan 的 LEAF® App 没有 Home Screen Widget,所以我自己做了一个免费的

2025年4月11日·1153 字·6 分钟·

目录

目录

Nissan 的 App #

Nissan 官方的 NissanConnect® EV & Services iPhone app

让你管理 LEAF 的独特功能,例如电池充电、调节气候控制和检查电池状态,所有这些都可以在你的移动设备上完成。

这是我的车的 App 截图:

Nissan LEAF iPhone app 截图,显示车辆信息

这个 App ... 还行。这是 Apple App Store 上的一个典型评价:

2023年10月11日,SugimotoKoitsu 评价该 App:“与汽车通信速度慢:这个 App 的功能非常有限,对我来说最有用的就是在冬天设置车厢温度,以及在工作时检查充电状态,这样我就不会整天霸占工作场所仅有的两个二级充电器之一。我喜欢在我的 2023 Leaf SV+ 快充满电时将其从充电器上拔下来。但是这个 App 更新电池状态的速度非常慢。我想 Nissan 是通过其蜂窝连接或卫星连接来轮询汽车,因为我无法将汽车登录到工作场所的 WiFi 网络。所以也许这些方法很耗时,但更新电池状态大约需要五分钟,这非常烦人。似乎在效率方面还有改进的空间。”

我对这个 App 的主要问题是它缺少一个 home screen widget,我可以用它来快速检查我的汽车的电池状态,不像其他电动汽车品牌如 Rivian, Ford, 和 Lucid 的 App。

第三方 App #

同时,其他人也开发了自己的 Nissan LEAF App,具有自定义的用户界面和附加功能(有些带有 home screen widget!):

不幸的是,据我所知,这些 App 在我居住的北美地区都已无法使用。😞

“My Leaf” 的开发者 在他的博客文章中分享了他的沮丧,解释了 Nissan 对其北美 API 的刻意更改如何迫使他停止对该地区用户的支持:

我只是不想再支持它了,因为 Nissan of North America 一直在阻止第三方客户端。在过去的 12 个月中,我一直在尝试支持该 API。和 Nissan 玩猫捉老鼠的游戏。我根本没有时间和精力继续下去,因为我知道 Nissan 一直在故意破坏第三方客户端。这确实是一个可悲而愚蠢的现实。

项目目标 #

尽管如此,我还是决定接受开发一个 iPhone home screen widget 的挑战,它可以显示我的 Nissan LEAF 汽车的电池充电状态。

我为该项目增加了一个限制:不花钱。我认为 Nissan 的 App 应该已经提供了一个 home screen widget,因此为此项目花费任何资金似乎都不公平。但是,使用我已经可以访问的工具/设备是公平的。

值得注意的是,这排除了使用像 Sidecar 这样的东西,它似乎提供了一个 home screen widget。我认为它看起来非常漂亮,但它需要购买一个无线 On-board Diagnostics (OBD) 扫描仪,外加每月 6.99 美元的订阅费。😓

这也排除了使用流行的 LeafSpyPro app,它同样需要购买一个无线 OBD 扫描仪,并且花费 19.99 美元。据我所知,它本身并不提供 home screen widget,但我认为你可能会使用其数据同步功能开发一个。

结果 #

我很高兴地报告我成功了,而且没花一分钱!这是该 widget 的截图:

手机主屏幕上的 Nissan LEAF widget 的截图,显示电池充电状态、可用续航里程、插入状态、车厢温度范围、预计充电时间和上次刷新日期/时间

如果你点击该 widget,它会打开 NissanConnect App。你会在下面的视频中注意到有一些额外的非理想屏幕转换(更多内容见下文),但是,嘿,一分钱一分货!

你的浏览器不支持嵌入视频,但不用担心,你可以 下载它 并使用你喜欢的视频播放器观看!

工作原理 #

为了降低任何 API 破坏性更改的风险,我只是使用了官方的 NissanConnect App,没有任何修改:

  1. 我创建了一个包含一个 GitHub Action 的 GitHub repo,该 Action:
  2. 我创建了一个单独的 GitHub repo,其中包含一个 GitHub Actions 工作流程,该工作流程计划在一天中多次运行一个作业,该作业:
  3. 我在我的 iPhone 上创建了一个名为 OpenNissanConnect 的 Apple Shortcut,该 Shortcut 打开 NissanConnect App:https://www.icloud.com/shortcuts/fd139fa01719483a89fcbde391435ff7 Apple Shortcut 配置,显示它打开 NissanConnect EV & Services App,然后停止并且不输出任何内容"
  4. 我创建了一个免费的 IFTTT applet,该 applet 在由 (2) 中的工作流程发送的电子邮件上触发,并在我的 iPhone 的 home screen widget 上显示电子邮件的正文 “Notification Widget” IFTTT 配置,显示 “If” 条件是 “Send IFTTT an email tagged”,而 “Then” 操作是 “Send a rich notification to the IFTTT mobile widget”

“Then” 操作的 IFTTT 配置,“Message” 设置为收到的电子邮件的正文,“title” 设置为 “Nissan LEAF® 🍃”,并且 “Link URL” 设置为 TinyURL(如下所述)。可选的 “Image URL” 字段留空。 Link URL 字段包含一个 TinyURL,它重定向到 shortcuts://run-shortcut?name=OpenNissanConnect,后者使用 Shortcuts URL scheme 来运行来自 (3) 的 Apple Shortcut。我这样做是因为 IFTTT 似乎检查你提供的 Link URL 实际上是否解析为有效的 Web URL;否则,当你点击 widget 时,IFTTT 网站只会打开并显示错误。

NissanConnect App 的开发者肯定可以进行更改,从而破坏此 widget 的工作方式,但是这些更改从定义上来说也可能会对常规人类用户产生负面影响,我希望他们能避免这种情况。

未来工作 #

我最初的计划是 在云端的 GitHub Actions runner 上运行一个 Android 模拟器,这样我就不需要维护自己的 Android 设备,而且这 几乎 有效(实际上,它确实在使用 arm Android 模拟器的我的 M3 Apple Silicon macOS 笔记本电脑上有效),但是 NissanConnect App(或者它连接的服务器)似乎可以检测到何时使用 x86_64 Android,然后拒绝登录。或者至少,当我在云端和我拥有的旧 x86_64 笔记本电脑上尝试时,我总是看到以下错误:

Nissan Connect App 登录窗口的屏幕截图,其中包含“< html > < head > < title > Error</title > </ head > < body > Unauthorized</body> </ html >” 错误弹出窗口

不幸的是,在撰写本文时,据我所知:

  1. 云 VM 环境必须支持嵌套虚拟化才能运行具有硬件加速的 Android 模拟器
  2. GitHub 提供的唯一 macOS arm runner 是 M1 和 M2 机器,但是 嵌套虚拟化仅在 M3 及更高版本上可用
  3. GitHub 支持的唯一其他 arm runner 是 Linux arm64 runner,其 硬件不支持嵌套虚拟化

幸运的是,NissanConnect App 有一个“演示模式”,不需要登录帐户即可使用,所以我能够在云中运行一个 Android 模拟器,作为 GitHub Action 的自动持续集成测试的一部分

也许 如果 GitHub Actions 在将来添加对 M3 Apple Silicon runner 的支持,那么我就可以切换到在云中免费运行所有这些东西…… 🤞

……或者我可能会换掉我的 Nissan LEAF,并购买另一款具有更好 App 体验的电动汽车,然后再发生这种情况。😅