V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
im3x
V2EX  ›  分享创造

5 分钟,给你的 iPhone 添加丰富精美实用的组件(原创开源)

  im3x · 2020-10-12 08:01:24 +08:00 · 20129 次点击
这是一个创建于 1505 天前的主题,其中的信息可能已经有所发展或是发生改变。

预览视频:

https://v.qq.com/txp/iframe/player.html?chid=17&vid=c31599njg4i&autoplay=true&full=true&show1080p=true

✨ 程序介绍

最近,一款 iOS App 引起了我的兴趣:Scriptable
它可以通过编写 Javascript 脚本,来给 iPhone 桌面添加自定义界面和功能的组件
这对于熟练 JS 的开发者朋友们来说,简直是难得的神器!

但很可惜,目前还没有找到合适的功能和界面都合心意的插件分享 :(

于是,爱造轮子且致力造好的我,在经过仔细阅读文档、手机上敲了千上万行代码、一边开发一边连载教程文章的认真投入之后,终于完成了这个项目:
Scriptables

这是一个经过踩了很多的坑,界面改版无数的经验之后完成的项目。
它可以让你使用非常简单的办法,给自己的 iPhone 设置各种精美丰富实用的桌面组件!

👉 快速上手

  1. 安装 Scriptable App 后打开
  2. Safari 浏览器中点击下载 加载器 Loader.Gitee,然后用 Scriptable 应用打开,完成插件代码安装
  3. 长按 iPhone 桌面,添加组件,选择 Scriptable 应用,添加组件后点击进入配置界面,最下方 Parameter 参数中,输入你想要的插件代码,完成即可!

插件参数格式:插件名称 @功能版本号:传递的参数
比如,你想要显示 V2EX 站点的热门文章列表,则输入 v2ex@api:hot
要显示 V2EX 站点指定节点的列表,输入: v2ex@go:create
以此类推,灵活配置!

目前我写了几个桌面组件,并在不断更新增加中:

  1. one 韩寒 ONE·一个图文
  2. v2ex V2EX 最新、最热文章
  3. bing Bing 每日必应壁纸
  4. weibo 微博热搜榜
  5. 一言 随机更新一句话
  6. 毒鸡汤 随机更新一条毒鸡汤
  7. 彩云天气 显示当前位置的天气预报情况
  8. 知乎日报 显示知乎日报文章信息
  9. 网易云音乐 网易云音乐热评等

每一个组件代码,都可以单独下载使用,也可以直接通过加载器输入配置,完成加载显示

❤️ 项目地址

https://github.com/im3x/Scriptables
创作不易,感谢你的支持!

第 1 条附言  ·  2020-10-13 11:30:13 +08:00

最近更新的内容:

  1. 新增两个组件
  2. 增加了加载器和插件的断网执行方案
  3. 研究了新的桌面组件交互方式,并准备用在组件上

最近更新的教程:

  1. 本地存储 Keychain 用法
  2. 桌面组件交互黑科技

感谢老铁们送来的 🌟Star🌟,一天时间从 0 - 250,非常有成就感,本项目和教程将继续更新,一起开发的老铁们欢迎关注公众号,第一时间获取资讯:

第 2 条附言  ·  2020-10-13 17:07:17 +08:00

新增了组件支持点击后进行交互操作(比如复制文本、打开URL、下载图片、弹框选择输入操作等)

新增了加载器支持加载第三方开发者仓库组件。

作为开发者,你只需要:

  1. fork 这个项目到自己的仓库
  2. 修改你仓库中的代码
  3. 加载器参数中输入: git-username/widget@version:params 即可加载你仓库的代码组件 (你也可以同时分享给你的朋友们使用)
136 条回复    2022-01-26 00:15:15 +08:00
1  2  
mokong
    1
mokong  
   2020-10-12 08:07:39 +08:00 via iPhone
赞一下
Cavolo
    2
Cavolo  
   2020-10-12 08:11:20 +08:00 via iPhone
很强,希望增加更多内容
hcsu
    3
hcsu  
   2020-10-12 08:21:46 +08:00 via iPhone
强 赞一个
oubfgiar
    4
oubfgiar  
   2020-10-12 08:29:25 +08:00 via iPhone
13.5 越狱,暂时不入 14,绑定收藏待用!感谢楼主!
idealhs
    5
idealhs  
   2020-10-12 08:34:19 +08:00
这 app 竟然过了 app store 的审查?苹果这么大气吗
o00o
    6
o00o  
   2020-10-12 08:36:34 +08:00
这 app 太强大了,安卓上有类似的软件吗?
chenbokais3
    7
chenbokais3  
   2020-10-12 08:46:06 +08:00
只能留下 卧槽 牛逼的感叹
zzqims9527q
    8
zzqims9527q  
   2020-10-12 09:17:12 +08:00 via iPhone
老哥🐂🍺
russ44
    9
russ44  
   2020-10-12 09:21:16 +08:00
不错
zchzch1014
    10
zchzch1014  
   2020-10-12 09:21:18 +08:00
知乎日报无法正常显示
im3x
    11
im3x  
OP
   2020-10-12 09:21:29 +08:00
谢谢各位!喜欢点个 star !

@idealhs 这个 App 类似于快捷指令,后边快捷指令被收购后内置到了 iOS 中,国内类似的有 JSBox (收费)等
im3x
    12
im3x  
OP
   2020-10-12 09:25:03 +08:00
@zchzch1014 你好,我这边刚刚测试了两遍(复制脚本独立运行测试+桌面组件参数配置测试),均为发现问题。
所以可以先确认你那边的网络环境可以访问对应的 api 地址: https://news-at.zhihu.com/api/4/news/latest

如果连接没问题,删除组件,重新添加(或者编辑组件,When Interacting 选项来回切换) 可进行脚本刷新重新运行
652600543
    13
652600543  
   2020-10-12 09:31:17 +08:00
@oubfgiar 老哥请教一下,越狱后银行类软件都是如何处理的?
zchzch1014
    14
zchzch1014  
   2020-10-12 09:41:17 +08:00
@im3x #12 组件换为最小那款再试可以正常显示,但选用第二种组件无法正常显示,情况如下图所示
im3x
    15
im3x  
OP
   2020-10-12 09:45:32 +08:00
@zchzch1014 #14
知乎日报插件目前是半成品,只支持小尺寸组件,后续中尺寸+大尺寸+界面重构,我尽量速度更新~

[https://github.com/im3x/Scriptables/tree/main/%E7%9F%A5%E4%B9%8E%E6%97%A5%E6%8A%A5]( https://github.com/im3x/Scriptables/tree/main/%E7%9F%A5%E4%B9%8E%E6%97%A5%E6%8A%A5)
yezhiye
    16
yezhiye  
   2020-10-12 09:52:33 +08:00 via Android
@im3x 国内外几个平台都没搜到 jsbox,有没有安卓类似的软件推荐
im3x
    17
im3x  
OP
   2020-10-12 09:55:04 +08:00   ❤️ 1
@yezhiye jsbox 是 iOS 平台的,安卓的目前还没有发现类似的应用
@o00o
stage0071
    18
stage0071  
   2020-10-12 09:59:53 +08:00
5s 可以用吗???
weishao2011
    19
weishao2011  
   2020-10-12 10:10:10 +08:00
可以 很好用
GzhiYi
    20
GzhiYi  
   2020-10-12 10:12:21 +08:00
强哦,刚想做一个类似的
im3x
    21
im3x  
OP
   2020-10-12 10:15:14 +08:00
@stage0071 手头没设备测试,如果更新了 iOS14,应该是没问题的


@weishao2011 谢谢支持

@GzhiYi 欢迎一起完善改进(造轮子)
deplives
    22
deplives  
   2020-10-12 10:28:01 +08:00
只能说 牛逼
chauncychan
    23
chauncychan  
   2020-10-12 10:45:16 +08:00
实在太强!你的*作真的秀! 666 !
Leo
    24
Leo  
   2020-10-12 10:47:42 +08:00
非常强大
temporary
    25
temporary  
   2020-10-12 10:51:55 +08:00
自己改脚本要怎么测哦
mgrddsj
    26
mgrddsj  
   2020-10-12 10:53:51 +08:00   ❤️ 1
chauncychan
    27
chauncychan  
   2020-10-12 10:56:25 +08:00
@stage0071 5s 最高 12.4.8
ansenJ
    28
ansenJ  
   2020-10-12 10:57:44 +08:00   ❤️ 1
感谢作者 已投币
frank065
    29
frank065  
   2020-10-12 11:06:02 +08:00
weibo 热搜榜好像没法刷新,还是应该有什么操作?
im3x
    30
im3x  
OP
   2020-10-12 11:06:06 +08:00
@temporary #25
目前自己改脚本可以通过复制脚本代码,在 Scriptable App 的编辑器里粘贴、修改、调试、运行(注释最底部的代码可单独测试+桌面组件使用)

后续我会加入用户自定义源的功能,这样开发者就能任意加载任何修改后的仓库的远程项目了(越狱?哈哈)
im3x
    31
im3x  
OP
   2020-10-12 11:07:22 +08:00
@frank065 #29
目前 iOS 的桌面组件刷新率是有时间间隔的,可能是一分钟,也可能是 5 分钟
keventseng
    32
keventseng  
   2020-10-12 11:19:57 +08:00
不知微博点击能否直接通过 app 打开?
Tigerw
    33
Tigerw  
   2020-10-12 11:40:27 +08:00
有没有商业化运营呢?比如开始收费
XSG
    34
XSG  
   2020-10-12 11:47:27 +08:00
关注!
CY4suncheng
    35
CY4suncheng  
   2020-10-12 11:48:36 +08:00
牛逼,不过彩云天气还是不行吧?
im3x
    36
im3x  
OP
   2020-10-12 11:48:46 +08:00
@keventseng #32,目前不可以,但是有 urlscheme 的情况下是可以的(参考网易云热评,点击后跳转网易云客户端指定音乐播放界面)


@Tigerw #33 目前还不考虑商业化运营,纯开源分享,后续可能会考虑给开发者加入付费定制(付费出售 /更新)计划,这样开发者就可以发布付费的内容,获取对应的劳动收入了(您如果有赞助意向我是非常欢迎)
christin
    37
christin  
   2020-10-12 11:49:39 +08:00 via iPhone   ❤️ 1
希望加一个在 scriptable 中运行后可以打印有哪些插件的功能 就不用再翻 GitHub 了
im3x
    38
im3x  
OP
   2020-10-12 11:49:59 +08:00
@CY4suncheng #35
彩云天气是一个测试版本,正在开发设计中。
按理来说不装客户端是可以做到模拟客户端的显示效果的(应用支持获取实时 gps,加上调用彩云 api,可以实现精准数据展示)
im3x
    39
im3x  
OP
   2020-10-12 11:50:57 +08:00
@christin #37
非常好的建议!已加入 todo,后续我看看怎么实现,感谢
CY4suncheng
    40
CY4suncheng  
   2020-10-12 12:00:54 +08:00
@im3x 我试了一下,差不多都可以,就是彩云天气一直显示默认图,小号和中号的小组件都试了
MEOWwONE
    41
MEOWwONE  
   2020-10-12 12:06:15 +08:00 via iPhone
彩云天气降雨提醒的参数输入什么?“彩云天气”这个没反应…
im3x
    42
im3x  
OP
   2020-10-12 12:18:34 +08:00
@CY4suncheng #40

@MEOWwONE #41

彩云天气插件因为调用 gps,需要开启定位的原因,导致直接添加无法显示。

目前临时解决办法:
1. 添加桌面组件后,参数输入:`彩云天气`
2. 完成后,桌面组件无法显示,点击组件,进入 Scriptable App,然后点击 `Loader.Gitee` 加载器插件运行,稍等一会,会弹出定位授权权限,此时设置权限即可。
3. 返回桌面,应该还会弹出是否允许桌面组件获取 gps,设置允许即可。

![https://i.loli.net/2020/10/12/9hREJd7Aso6tk1O.png]( https://i.loli.net/2020/10/12/9hREJd7Aso6tk1O.png)
![https://i.loli.net/2020/10/12/kzDqIFseJ16Hhw4.png]( https://i.loli.net/2020/10/12/kzDqIFseJ16Hhw4.png)
ShuoHui
    43
ShuoHui  
   2020-10-12 12:36:26 +08:00 via iPhone
赞,正好在找 demo
shiguang
    44
shiguang  
   2020-10-12 12:44:09 +08:00   ❤️ 1
哇 感觉不错 正好我最近有空 研究下 看能不能加点别的使用场景 给你贡献点代码😁
im3x
    45
im3x  
OP
   2020-10-12 12:58:03 +08:00
@shiguang #44 欢迎欢迎,因为项目刚写不久,组件还都是想到什么就写什么,还有很大的完善空间
最近也在琢磨还需要添加什么场景的内容
(开发中遇到问题欢迎一起讨论)
fossis
    46
fossis  
   2020-10-12 13:01:22 +08:00
@im3x #42 先 star 为敬。👍,请问彩云天气能显示温度吗?目前的只显示降雨信息。感觉温度更直观一些。
Rekkles
    47
Rekkles  
   2020-10-12 13:02:19 +08:00
强啊。
fossis
    48
fossis  
   2020-10-12 13:05:40 +08:00
@im3x 还有就是,bing 图片的时候,那个注释文字居中显示挺影响效果的,如果可以的话,建议把注释文字内容缩小放角落里,小图中图模式可以直接把文字掐掉不要,就保留大图模式下,文字右下角。
MEOWwONE
    49
MEOWwONE  
   2020-10-12 13:20:44 +08:00
@im3x 成功了 彩云天气降雨通知是我需要的,还有这周彩云要出官方小组件了。
im3x
    50
im3x  
OP
   2020-10-12 13:38:46 +08:00
@fossis #46 目前这个插件是简单的调用官方的 API,更多内容还有待后续我再看看接口,读取更精准数据展示
bing 图片也算是一个 demo,文字位置的话,因为 Scriptable 这个 App 不支持定位设置(比如左对齐,顶部对齐)也不支持获取组件的长宽,位置的问题目前挺尴尬的,后续我看看怎么优化吧


@MEOWwONE 彩云天气还是非常不错的
keventseng
    51
keventseng  
   2020-10-12 13:39:05 +08:00
@im3x #36 嗯,已经使用你微博组件单独修改了 urlscheme 。很好用,不错~
ginisok
    52
ginisok  
   2020-10-12 13:50:03 +08:00
这个太好用了
ryh
    53
ryh  
   2020-10-12 13:52:10 +08:00
我之前想做个类似的来着,还在想怎么动态定义界面, 多谢 lz
学习学习
yRebelHero
    54
yRebelHero  
   2020-10-12 13:58:37 +08:00
老哥,强!
im3x
    55
im3x  
OP
   2020-10-12 13:59:11 +08:00
@keventseng #51 👍 厉害,欢迎分享 urlscheme,我后续代码中也添加给用户选择的选项 😄

@ryh #53 Scriptable 这个应用是一个外国人写的,好的工具用好才能发挥出效果,欢迎一起学习
blurh11E27
    56
blurh11E27  
   2020-10-12 13:59:52 +08:00
不想要那个 scriptable 能解决不
CY4suncheng
    57
CY4suncheng  
   2020-10-12 14:04:35 +08:00
@im3x 确实是因为定位权限,现在可以显示了
privil
    58
privil  
   2020-10-12 14:08:26 +08:00
优秀!厉害了
Heerey
    59
Heerey  
   2020-10-12 14:10:10 +08:00
强,用了下,挺好看的
im3x
    60
im3x  
OP
   2020-10-12 14:13:03 +08:00
@blurh11E27 #56 脚本无法脱离主程序运行的
zhaol
    61
zhaol  
   2020-10-12 14:41:05 +08:00
感觉这个做到后面,可以做成一个平台了,每个开发者都可以上传自己的 js 脚本,然后大家根据自己的需求,添加不同的组件。大佬加油
killerv
    62
killerv  
   2020-10-12 14:48:08 +08:00
强大
WebKit
    63
WebKit  
   2020-10-12 14:59:35 +08:00 via Android
这有点类似 Android 上的 kwget
Mryang
    64
Mryang  
   2020-10-12 15:28:18 +08:00
不错,我看推上有一个加载 Spotify 的组建的 url,真心想用。但不知道这个 url 是啥😅
sys820
    65
sys820  
   2020-10-12 16:16:23 +08:00
厉害了
oubfgiar
    66
oubfgiar  
   2020-10-12 16:27:11 +08:00 via iPhone
@652600543 我装了“shadow”这个屏蔽越狱检测的插件,她可以欺骗软件,让软件以为我没越狱,对微和支付宝信管用,其他的没测试。因为微信的风控太狠了,我怕被封号。
wwmmkk
    67
wwmmkk  
   2020-10-12 16:46:54 +08:00
@im3x 反馈一个疑似 Bug 在小组件中设置为“Open URL”并填写了 URL 后,再次打开 URL 会变为空值。
im3x
    68
im3x  
OP
   2020-10-12 17:08:16 +08:00
@wwmmkk 这个是算主程序的逻辑,一般直接默认 OpenApp 或者 Run Script 即可,其他的设置不用配置 (脚本无法判断)
OD
    69
OD  
   2020-10-12 17:19:25 +08:00
这如果是 ios 允许的套路的话,前端感觉又多了条路子额
wanghao2018
    70
wanghao2018  
   2020-10-12 17:19:46 +08:00
加载器 Loader.Gitee 这个再 safari 打不开啊
warron
    71
warron  
   2020-10-12 17:22:27 +08:00
点赞
zcfnc
    72
zcfnc  
   2020-10-12 17:27:18 +08:00
很顶 试了一下还是满支持的 虽然不能交互 但是做好了应该还是蛮不错的
outside
    73
outside  
   2020-10-12 17:28:31 +08:00
非常赞的项目,看了源码非常感兴趣,我也写了一个功能组件,希望能帮你更新项目
christin
    74
christin  
   2020-10-12 17:35:09 +08:00 via iPhone
im3x
    75
im3x  
OP
   2020-10-12 17:47:56 +08:00
@OD #69,可能  没想到还可以这么玩。。 (其实还有更多黑科技玩法)

@wanghao2018 #70,可以手动打开源码,复制代码,在 Scriptable 编辑器里添加脚本,粘贴保存,效果是一样的


@zcfnc #72,谢谢支持,目前 iOS 桌面的组件交互性不是很好,一般应用都是用来做展示用


@outside #73,谢谢支持,欢迎提交 PR 一起完善
im3x
    76
im3x  
OP
   2020-10-12 17:50:46 +08:00
@christin #74,这个问题可能是因为网络的原因,导致获取数据失败(此时整个脚本会报错无法继续执行)
后续我会考虑加入数据缓存和容错处理

解决办法删除组件重新添加,或者长按组件编辑,When Interacting 里几个选项来回切换,或者底部的 Parameter 的最后加上一些没用处的参数(仅仅做刷新缓存用,因为选项或配置一直,这个 App 不会刷新执行)
比如:`网易云音乐 @热评:1`
outside
    77
outside  
   2020-10-12 18:12:30 +08:00
@im3x 已提交 PR 了,作者看一下哈,后面我也会帮着做一些小功能: https://img.alicdn.com/imgextra/i2/1985706121/O1CN018sC9AB1v5SwqK1m5w_!!1985706121.png
guoyida
    78
guoyida  
   2020-10-12 18:23:55 +08:00 via iPhone
强帖留名!
im3x
    79
im3x  
OP
   2020-10-12 18:34:13 +08:00
@outside 👍
tediorelee
    80
tediorelee  
   2020-10-12 18:34:58 +08:00 via iPhone
大佬太猛了,马一下
whasyt
    81
whasyt  
   2020-10-12 18:49:24 +08:00
赞,另外,如果“Loader.Gitee”文件打不开的话,可以在电脑上下载传到微信,通过微信->其他方式打开->Scriptable
cccnoi
    82
cccnoi  
   2020-10-12 19:53:07 +08:00
大佬!
nyz1500
    83
nyz1500  
   2020-10-12 19:53:29 +08:00 via iPhone
太强了!是不是可以考虑来个 rsshub 的联动了🌚
blank0ken
    84
blank0ken  
   2020-10-12 20:50:51 +08:00
牛逼
cccRaim
    85
cccRaim  
   2020-10-12 22:01:56 +08:00
可以,看了一下目前只有时间,排列,间距,图片,文字这些元素。
对于展现元素来说够用了。
然后假如要做成展现 cpu 信息或当前 ip 信息的话又没有相关 api,目前只有电量和音量的 api 。只能期待更新吧。
qiang111jx
    86
qiang111jx  
   2020-10-12 22:03:52 +08:00
为什么一直报错,没有一个能使用的。。按视频一步一步操作的 ,难道是跟别的代码冲突了吗
im3x
    87
im3x  
OP
   2020-10-12 22:24:49 +08:00
@cccRaim #85
是的,而且如果内容不够,还会居中展示,这类 js 无法解决的坑 期待作者下一次更新


@qiang111jx #86
请问报错的截图有没有,我帮你看看(用 Loader.Gitee 版,国内仓库速度比较快,Loader.GitHub 版很多时候网络不稳定)
joniking
    88
joniking  
   2020-10-13 02:17:40 +08:00 via iPhone
提醒一下,在 Safari 浏览器“Loader.Gitee”文件打不开的话,可以换谷歌浏览器嗷。
TangMonk
    89
TangMonk  
   2020-10-13 04:47:54 +08:00 via iPhone
bing 的背景有点模糊啊
reayyu
    90
reayyu  
   2020-10-13 05:08:24 +08:00 via iPhone
Nb 太好用了
Tigerw
    91
Tigerw  
   2020-10-13 10:02:31 +08:00
@im3x 你本身即是开发者又是平台,你也可以做一些付费内容
idou
    92
idou  
   2020-10-13 10:32:30 +08:00
功能好用步骤清晰,好评!
mitong3269
    93
mitong3269  
   2020-10-13 10:39:42 +08:00 via iPhone
大佬 有可能能做到点击微博热榜直接转跳吗
outside
    94
outside  
   2020-10-13 10:46:27 +08:00
github 推广图片地址错误,“https://github.cm/im3x/Scriptables”,“cm”=>“com”
im3x
    95
im3x  
OP
   2020-10-13 11:32:49 +08:00
@Tigerw #91,正在研究中,完善当前平台的同时,寻找更好的利于开发者和用户的方法

@mitong3269 #93, 可以的,楼上有一位老哥修改成功了,直接找到 微博的 urlscheme,然后修改脚本代码的跳转 url 即可
im3x
    96
im3x  
OP
   2020-10-13 11:34:35 +08:00
@outside #94,找了半天,没找到你说的这个错误的位置在哪😭 烦请告知文件路径~
outside
    97
outside  
   2020-10-13 12:12:57 +08:00   ❤️ 1
@im3x https://gitee.com/im3x/Scriptables/raw/main/v2ex/screenshot.jpg 你项目中所有的介绍图片上的链接错误
im3x
    98
im3x  
OP
   2020-10-13 12:47:14 +08:00
@outside #97 大意了🤦‍♂️ 已修复,感谢~
mr2xd
    99
mr2xd  
   2020-10-13 12:57:44 +08:00
已用上
psterman
    100
psterman  
   2020-10-13 13:58:31 +08:00 via iPhone
v2ex 不正常 只有我这样吗?
1  2  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5641 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 33ms · UTC 06:54 · PVG 14:54 · LAX 22:54 · JFK 01:54
Developed with CodeLauncher
♥ Do have faith in what you're doing.