让iPhone、iPad壁纸同步必应每日一图
一个很简单的想法,源于我的KDE桌面——要知道,我的KDE桌面壁纸设置的就是每日一图,bing来源。
思路也很简单。现如今iOS系统已经预置了一个十分方便但异常强大的组件:快捷指令,而根据KDE可以使用bing每日一图来推断,便可知道bing的图片接口是开放的。所以前提条件都准备好了,就直接来编写快捷指令吧。
打开快捷指令,新建。
首先就是要获取bing当天推荐的图片。而获取的方法自然是通过Bing提供的API获取。
API地址如下:https://cn.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1
快捷指令中已经提供了从API获取js结果的功能,直接搜索添加获取URL内容
,其中获取来源填入上面的API地址即可。
从这个网址获取到的结果是一个json字符。在快捷指令中,可以很方便的将json串转换为词典并从词典中提取指定键对应的值。而这也是作为互联网上面API使用最多的数据传输方法。上述Bing的API得到的json保存有很多信息。而我们只需要其中的图片路径即可。假定上述获取到的json命名为Bing
,那么它有关图片地址的键就在Bing.images.url
。而这个路径并不是完整的,它没有保存这个图片对应的通用的网址前缀。而这个前缀就是Bing的网址https://www.bing.com/
。
在了解了上述规律之后,就可以继续完成这个快捷指令了。我们现在只是拿到了最初始的json字符串,接下来就是要解析并获取真正的图片了。而这些功能快捷指令都有着对应的功能。
增加一个功能获取词典值
,来源位置会自动加入前一步骤得到的结果(URL的内容
),也就是刚刚通过API获取的json。而为了之后简化路径,可以在这里先进行一次筛选,使之后的选择可以以Bing.images
中进行。
点击URL的内容
,弹出的小窗口中,类型
(第二行蓝字位置)选择词典
下方获取键对应的值输入images
,完成。这样变把此处的来源变成Bing.images
里的内容了。
这个功能的后方,输入网址对应的键名url
,获取的是值
。
设置完成后这个功能整体表现出来的是这样的:
得到了URL,现在就可以补全URL来获取图片了。但是要注意,这里还是通过网址来获取的,所以使用的功能仍然是获取URL内容
,而路径要输入完成的,补全的路径。因此需要在默认填入的词典值前面加上通用前缀https://www.bing.com/
。整体看起来是这样的
最后,把获取到的墙纸设置为得到的图片即可。添加一个操作,名为设定墙纸
,根据自己的需要,选择设置锁定界面还是主界面,而来源里边默认加入的URL的内容
要注意,因为获取到的是图片,所以需要把类型设置为图像
。如图。
同时,展开这个功能折叠的内容,关闭显示预览
(否则执行后会进入到设定壁纸的预览界面,手工确定才能完成,就不符合原始的需要了。
是1024乘768的,横屏其实是大小正好的,但是用快捷指令的话,自动设置的壁纸会有一点放大,看着就很别扭 —— Devoir 于 发表。 回复TA