科学地禁用微信的iOS深色模式

Apr 5 2020

本文提供一个方法,帮助无法适应微信深色模式的小伙伴在保持系统深色模式打开,不影响其他app的前提下关闭微信深色模式。

对于微信深色模式到底做得有多糟/好,不予评价。

Step 1

请先确保手机已安装 快捷指令Scriptable 这两个app,前者是苹果官方的捷径app,后者是一个免费的开发类app,可以允许我们在捷径中调用JavaScript。

Step 2

1)打开 快捷指令,选择底部第二个Tab 自动化

2)点击 新建个人自动化。

3)在 设置 分组列表中找到 打开App

4)在 App 这一栏上点击 选取 ,并选取 微信

5)点击 下一步,点击 添加操作,在弹出的搜索框中输入 外观。在下方筛选出的操作中选择 设定外观。点击 将外观设为深色 ,改为 浅色

6)点击 下一步,关闭 运行前询问。点击 完成

本环节完成。至此,我们确保了微信打开后iOS自动将系统外观切换到浅色模式。

Step 3

1)打开 Scriptable,点右上角 新建一个空白脚本。内容如下:

var t=new Date()
  if (t.getHours()>=19 || t.getHours()<6) {
    return 1
  }
return null

这段JS的目的是判断当前时间是否位于19点之后次日6点之前。这是我偏向使用深色模式的时段,你可以根据个人习惯修改数字。

2)在编辑界面点击左下角的第一个icon,将这个脚本重命名为 isNight 。保存。

Step 4

1)回到 快捷指令 ,选择底部第二个Tab 自动化

2)点击 加号,点击 新建个人自动化

3)在 设置 分组列表中找到 打开App

4)在 App 这一栏上点击 选取 ,并通过打勾复选所有可被加入深色模式白名单的app。我选了26个之多。

5)点击 下一步,点击 添加操作,在弹出的搜索框中输入 脚本。在下方筛选出的操作中选择 运行脚本 (开头带Scriptable图标 {}的那个)。

6)在 Run Script with Parameter 这个操作条中,点击 Script。在弹出的脚本列表中选择刚才创建的脚本名 isNight

7)点击本页下方的➕ 添加新的操作。在弹出的搜索框中输入 变量。在下方筛选出的操作中选择 设定变量

8)点击 变量名称,输入任意字符。我们假设将变量命名为 isNightResult。这一个操作条最终显示为 将变量 isNightResult 设为 {}Output

9)再次点击本页下方的➕ 添加新的操作。在弹出的搜索框中输入 如果。在下方筛选出的操作中选择 如果

10)点击 条件,选择 有任何值

11)按 否则 边上的 X,删除此分支

12)再次点击本页下方的➕ 添加新的操作。在弹出的搜索框中输入 外观。在下方筛选出的操作中选择 设定外观。此时这条操作应该是 将外观设为深色

13)按住第12点设置好的操作,将其拖动到 如果isNightResult 有任何值 的下面。

14)点击 下一步,关闭 运行前询问。点击 完成。最终设定结果应该如下:

GBotf0.md.png

第四步完成。这一步将让我们选择的白名单里的app在夜间运行时保持深色模式,在白天则不会修改系统当前的设置。

Step 5

其实到第四步为止,自动切换的功能已经实现了。但是苹果这个自动化指令有个很蛋疼的地方,每次打开app都会弹一个通知告诉你:刚刚执行了自动化操作。注意是每一次,而且不能在设置 - 通知中关闭。

为了解决这个蛋疼的设定,需要用到iOS一个良性的bug。

1)首先,反复在微信和其他app之间切换十多次以上,每次都会有通知弹出。

2)进入iOS的 设置。找到 屏幕使用时间

3)点击 查看所有活动。拉到底部,确保在 通知 这一个板块能看到快捷指令。如果看不到,重复1)的操作多次,直到快捷指令出现在这里。

4)回到页面顶端,在 每周每天 两个tab间反复切换若干次。然后拉到页面底部,查看 快捷指令 这一项是否出现了可以点击的 > 右箭头

GBo8Ts.md.jpg

5)点击这个箭头,终于看到了关闭 快捷指令 通知的设置。果断关闭吧!世界清净了。

注:大概过三四天左右,苹果会固执地自动打开快捷指令的通知,要重新再做一次Step 5的操作。

至此,我们终于实现了自动切换深色和浅色模式,可以愉快地玩耍了。

对于任何我们不希望其强制随系统显示为深色的app,都可以在Step 2中将其加入黑名单。

Notion存档地址: https://www.notion.so/iOS13-app-b9fb38fda5bc48d3a8128235f6199489

All Articles