聊天神器是一个基于JSBox的脚本
JSBox 是一个可以用来运行 JavaScript 脚本的 iOS 应用,你可以通过他来执行标准的 JavaScript 脚本 这种执行不是指跑在浏览器上,而是执行在一个完全原生的环境,效率很高。并且我们提供了很多 iOS 原生的接口,这意味着你可以通过他做很多事情,包括但不限于:写一个用来查询汇率的脚本;写一个用于计算小费的脚本;通过接口实现一个小小的应用,提供丰富的界面;写一个文本收藏工具,用于收藏常用的文字;写一个下载 Twitter 视频的小工具;…… 其实 JSBox 是完完全全可编程的一个应用,他能做很多事情,所限制产出的往往只是动手能力。
为了更好的编写脚本,我们甚至提供了配套的 VSCode 插件,用于更高效率的编写和测试 JSBox 脚本,可以做的桌面端编写 iOS 端实时刷新。因为我们始终相信无论移动端的编辑器做的多么强大,编写代码的效率也始终被桌面端碾压。所以,JSBox 并不是像 Pythonista 那样为了编写代码而生的应用,编写代码只是实现功能的手段,我们的一切最终都是为了效率的提高。
上文摘自于JSBox作者cyanogen在少数派《JSBox: 一个创造工具的工具》
言归正传 说说今天的正主 ---「聊天神器」
其实这个脚本实现起来很简单,最大的助力为「剪贴板」
在iOS中,可以使用剪贴板实现应用程序之中以及应用程序之间实现数据的共享。比如你可以从iPhone QQ复制一个url,然后粘贴到safari浏览器中查看这个链接的内容。
一、在iOS中下面三个控件,自身就有复制-粘贴的功能:1、UITextView 2、UITextField 3、UIWebView 二、UIKit framework提供了几个类和协议方便我们在自己的应用程序中实现剪贴板的功能。
1、UIPasteboard:我们可以向其中写入数据,也可以读取数据
2、UIMenuController:显示一个快捷菜单,用来复制、剪贴、粘贴选择的项。
3、UIResponder中的 canPerformAction:withSender:用于控制哪些命令显示在快捷菜单中。
4、当快捷菜单上的命令点击的时候,UIResponderStandardEditActions将会被调用。
三、下面这些项能被放置到剪贴板中
1、UIPasteboardTypeListString — 字符串数组, 包含kUTTypeUTF8PlainText
2、UIPasteboardTypeListURL — URL数组,包含kUTTypeURL
3、UIPasteboardTypeListImage — 图形数组, 包含kUTTypePNG 和kUTTypeJPEG
4、UIPasteboardTypeListColor — 颜色数组
四、剪贴板的类型分为两种:
系统级:使用UIPasteboardNameGeneral和UIPasteboardNameFind创建,系统级的剪贴板,当应用程序关闭,或者卸载时,数据都不会丢失。
应用程序级:通过设置,可以让数据在应用程序关闭之后仍然保存在剪贴板中,但是应用程序卸载之后数据就会失去。我们可用通过pasteboardWithName:create:来创建
总结一句「剪贴板」能实现很多功能,也是iOS目前闭环生态中交换数据的唯一途径
那么实现起来的原理就是点击按钮请求api,把api返回的数据通过js处理一下。拷贝到剪贴板,在调用键盘接口就实现啦
目前收集了「骂人宝典」「彩虹马屁」「土味情话」「笑话大全」「每日早安」「渣男语录」「毒鸡汤」「随机一言」大致覆盖了日常聊天使用场景
end
编辑:Nicolas-kings
图片:曰坛
转载:请注明来源