解说社区

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 715|回复: 10

[原创] 通过解说的代码扩展。使天坦输入法、讯飞输入法,半屏模式变得更好用。

[复制链接]
发表于 2023-3-22 00:02:48 来自手机 | 显示全部楼层 |阅读模式
半屏输入最大的好处。就是可以触摸上半屏的内容。还有可以用读屏的手势。解说用户已经支持了单指半屏可以滑动选字,没有候选可以逐字移动光标。下面就介绍几个方法。利用读屏的功能。让输入更好用。
1.大家都知道,输入法全屏可以用手势滑动到结尾就可以朗读编辑框的内容,半屏是不是就只能触摸编辑框了?下面介绍的方法可以用手势朗读编辑框内容。解说用户可以通过代码实现手势朗读
把下面代码复制。打开程序设置。点击操作设置。点击手势方案。右上角点击更多。新建功能。名称可以随便填。内容把刚复制的代码粘贴进去。
下面是代码:
local edit=service.getEditText()
if edit then
service.speak(edit.Text or "")
else
service.speak("没输入框")
end



  来自解说社区客户端
回复

使用道具 举报

 楼主| 发表于 2023-3-22 00:03:19 来自手机 | 显示全部楼层
2.解说用户输入法半屏可以通过下滑上屏功能那么,没候选的时候能朗读编辑框内容不就更加方便吗。其实在之前的代码加上判断键盘代码就可以了。
下面是代码:
if service.isShowInputWindow() then
local edit=node.text
service.speak(edit)
return true
end




  来自解说社区客户端
回复

使用道具 举报

 楼主| 发表于 2023-3-22 00:03:50 来自手机 | 显示全部楼层
3.无候选下滑手势的功能
上面提到无候选下滑可以朗读编辑框,那如果不想朗读,想实现其他例如收起键盘、发送等功能,下面以收起键盘为例,实现其他功能可修改关键字。
下面是代码:
if service.isShowInputWindow() then
service.execute("返回",node)
return true
end




  来自解说社区客户端
回复

使用道具 举报

 楼主| 发表于 2023-3-22 00:04:22 来自手机 | 显示全部楼层
4.发送和评论等功能
全屏可以通过手势点击发送评论等按钮,半屏可以通过下面代码实现,双引号里面的关键字可以自行增加,关键字与关键字之间要有竖线隔开。
下面是代码:
if service.isShowInputWindow() then
service.click({{"发送|确定|保存|发表|评论|完成|发布|搜索"}})
return true
end



  来自解说社区客户端
回复

使用道具 举报

 楼主| 发表于 2023-3-22 00:04:56 来自手机 | 显示全部楼层
5.判断键盘专用功能
例如有键盘实现清空,没有键盘或者焦点在其他地方实现复制。下面这个代码可以自行修改双引号里面的关键字,前面双引号关键字是弹出键盘用的,后面双引号是其他地方用的。
下面是代码:
if service.isShowInputWindow() then
service.execute("清空",node)
return true
end
service.execute("复制",node)
return true




  来自解说社区客户端
回复

使用道具 举报

 楼主| 发表于 2023-3-22 00:05:27 来自手机 | 显示全部楼层
6.编辑模式
解说用户默认手势先左后下打开编辑模式,如果这个手势用的是默认,无需修改。选择左右手势移动焦点的,打开编辑模式后。用手势。上下滑上个字和下个字,左右滑上下行,先左后上上一段落,先右后下下一段落,先上后下开头,先下后上结尾,先上后右选择开始点,单击读取所选内容。先下后右选择终点并复制,先上后左追加复制,先左后下退出编辑模式。
如果其他地方不想用默认手势的可以通过代码修改(其他地方指的是焦点不在编辑框),下面介绍其他地方是返回主屏幕,焦点在编辑框就打开编辑模式注,由于编辑模式手势用的是解说在编辑框默认的功能,所以手势不能更改。
下面是代码:
if service.check("编辑框",node)
return false
end
service.execute("主屏幕",node)
return true




  来自解说社区客户端
回复

使用道具 举报

 楼主| 发表于 2023-3-22 00:05:58 来自手机 | 显示全部楼层
7.统计字符和解释编辑框中的文字
先左后右解释编辑框中的文字,先右后左统计字符并读出当前光标所在位置。
同样,这两个是调用解说在编辑框默认功能,手势不可更改,能更改是焦点不在编辑框功能,例如在编辑框是统计字符,其他地方列表浏览。可以自行修改关键字对应的功能。必须用先右后左手势调用,下面是代码:
if service.check("编辑框",node)
return false
end
service.execute("列表浏览",node)
return true




  来自解说社区客户端
回复

使用道具 举报

 楼主| 发表于 2023-3-22 00:06:28 来自手机 | 显示全部楼层
8.删除光标所在句。
这个是按句删除。如果不想要这一句的内容,光标停留在这一句的任何一个字就能把这一句删除。
用什么符号可以自己加减,加减符号在代码在的第6行。
以下是代码。
if service.isShowInputWindow() then
local txt,s=node.text,""
local gb=node.getTextSelectionEnd()
local n1,n2=0,-1
if txt and txt~="" then
local tbl={",","。",":","?","!","……",";",",",".","!","?",";","\n","(",")"}
for n=gb-1,1,-1 do
if table.find(tbl,utf8.sub(txt,n,n)) then
n1=n
break
end
end
if gb for n=gb,utf8.len(txt)-1,1 do
if table.find(tbl,utf8.sub(txt,n,n)) then
n2=n
break
end
end
end
s=utf8.sub(txt,n1+1,n2)
txt=n2==-1 and utf8.sub(txt,1,n1) or utf8.sub(txt,1,n1)..utf8.sub(txt,n2+1,-1)
service.setText(node,txt)
service.setSelection(node,n1)
service.speak(s.."已删除")
else
service.speak("编辑框为空")
end
return true
end




  来自解说社区客户端
回复

使用道具 举报

 楼主| 发表于 2023-3-22 00:08:43 来自手机 | 显示全部楼层
9.删除光标所在段落
这个跟删除所在句是一样的,光标停留在这段落的任何一个字都能把这一段落删除。
以下是代码。
if service.isShowInputWindow() then
local txt,s=node.text,""
local gb=node.getTextSelectionEnd()
local n1,n2=0,-1
if txt and txt~="" then
local tbl={"\n"}
for n=gb-1,1,-1 do
if table.find(tbl,utf8.sub(txt,n,n)) then
n1=n
break
end
end
if gb for n=gb,utf8.len(txt)-1,1 do
if table.find(tbl,utf8.sub(txt,n,n)) then
n2=n
break
end
end
end
s=utf8.sub(txt,n1+1,n2)
txt=n2==-1 and utf8.sub(txt,1,n1) or utf8.sub(txt,1,n1)..utf8.sub(txt,n2+1,-1)
service.setText(node,txt)
service.setSelection(node,n1)
service.speak(s.."已删除")
else
service.speak("编辑框为空")
end
return true
end




  来自解说社区客户端
回复

使用道具 举报

 楼主| 发表于 2023-3-22 00:09:14 来自手机 | 显示全部楼层
10.删除光标前所有文字
这个是一键把光标前所有文字清除。是包含光标所在的这个字。
以下是代码
if node.isEditable()
local txt,s=node.text,""
local gb=node.getTextSelectionEnd()
if gb>0 then
s=utf8.sub(txt,gb+1,-1)
service.setText(node,s)
service.setSelection(node,0)
service.speak("光标前已删")
else
service.beep()
end
return true
end




  来自解说社区客户端
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|解说社区

GMT+8, 2024-4-29 05:34 , Processed in 0.044488 second(s), 13 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表