聊天神器是一个基于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

图片:曰坛

转载:请注明来源

js脚本点击按钮显示文字_JSBOX脚本聊天神器相关推荐

  1. 点击按钮显示文字,再次点击隐藏文字

    点击按钮显示文字,再次点击隐藏文字 点击按钮显示文字,再次点击按钮隐藏文字 通过if条件判断css样式来做 <!DOCTYPE html> <html lang="en&q ...

  2. 原生JS实现点击按钮显示更多内容

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  3. 原生js实现点击按钮显示/隐藏图片

    目录结构: 代码: <!DOCTYPE html> <html lang="en"> <head><meta charset=" ...

  4. 网页加载的不同的方式、点击按钮显示一句话、jQuery中获取元素的方法

    网页加载的不同的方式 <!DOCTYPE html> <html lang="en"> <head><meta charset=" ...

  5. js实现点击按钮切换图片功能_☆*往事随風*☆的博客

    文章目录 前言 一.DOM是什么? 二.对象的HTML DOM 树 三.图片切换练习 1.要求 2.实现思路 3.示例代码 1.html示例代码如下: 2.css示例代码如下: 2.js示例代码如下: ...

  6. 点击按钮显示谷歌地图

    原文:点击按钮显示谷歌地图 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind=" ...

  7. html点击后按钮本身文字变化,javascript实现点击后变换按钮显示文字的方法

    本文实例讲述了javascript实现点击后变换按钮显示文字的方法.分享给大家供大家参考.具体实现方法如下: 显示一些按钮,如果点击了, 当前点击的按钮文本变为"点了",其他按钮文 ...

  8. React 点击按钮显示div与隐藏div

    <!DOCTYPE html> <html><head><meta charset="UTF-8" /><title>R ...

  9. 点击按钮显示或隐藏Div块

    通过点击按钮实现Div块在显示状态与隐藏状态之间来回切换. 代码如下: 方法一: <!DOCTYPE html> <html> <head><script s ...

最新文章

  1. oracle ORA-00119和ORA-00132解决方法
  2. zabbix安装使用及监控案例(从头到尾)
  3. linux下的c语言控制灯闪烁,C语言实现LED灯闪烁控制
  4. java if 定义变量_java – 如何分配在if else语句中定义的变量
  5. c51随机数不重复_单片机定时器设置不重复随机数
  6. 使用Python可以做些什么
  7. 深度融合 | 当推荐系统遇见知识图谱(三)
  8. LVS+Keepalived实现高可用群集
  9. 【K8S】K8S-网络模型、POD/RC/SVC YAML 语法官方文档
  10. HighCharts (web 页面的图表框架)
  11. Linux中ping脚本
  12. 基于springboot点餐系统java web订餐管理平台源码
  13. 关闭windows电脑 ctrl +alt +方向键旋转屏幕快捷键
  14. android file assets,关于Android Assets读取文件为File对象
  15. Site App轻松创建移动开发
  16. 项目经理领导力提升与塑造:从自己干到团队干
  17. python爬虫:模拟有道词典翻译文本
  18. 计算机组装需要注意什么东西,组装一台计算机需要注意那些问题?
  19. Font Awesome所有图标
  20. 怎么给网页加动态背景

热门文章

  1. SPOJ3276 D-query
  2. EasyDarwin开源手机直播方案:EasyPusher手机直播推送,EasyDarwin流媒体服务器,EasyPlayer手机播放器...
  3. charles抓包工具使用指南
  4. 宁波Uber优步司机奖励政策(12月14日到12月20日)
  5. (转)Win7下如何硬盘安装Ubuntu
  6. [程序员面试金典][JAVA][第02.01题][移除重复节点][Set][双指针]
  7. HDU - 5878 A - I Count Two Three H 技巧枚举
  8. 新疆农业大学计算机科学与技术专业怎么样,新疆农业大学计算机科学与技术专业2016年在新疆理科高考录取最低分数线...
  9. 1282B1. K for the Price of One (Easy Version)
  10. python中的引用怎么理解_python 引用和对象理解