安卓11之上的搜索框,的操作

  对于输入法的操作,每个脚本作者都逃不过去的一个坎,对于不同APP上的搜索框,亦或者是各种消息发送框...咳咳~都需要用到输入法上的操作, 搜索和发送两个按钮, 其实触发的都是回车按钮,但是如果直接使用脚本发送KeyCode码,也不会触发这个回车按钮.所以只能使用第三方输入法来实现,目前已知的可用脚本输入法,有萌歆制作的一个叫脚本输入法的app, 和 无名小姐魔改的百度输入法,这两个输入法,都在应用内,添加了一个静态的事件监听,从而使外部的APP发送一条广播来触发输入法上的按钮功能.

  百度输入法修改后,有几十兆大小. 而萌歆的脚本输入法js搜索框代码,只有一两兆大小,所以,如果你像我这种,不太喜欢用百度产品的人,肯定是会选择多安装一种输入法来备用,对于安卓11之上的系统用户来说, autojsPro提供了一个方法来快速切换当前手机上的输入法.那么对低于安卓11的手机来说,就不是那么简单了, 因为没有足够的权限,来切换输入法了~

  不过我们可以使用adb去给app授予系统权限,注意,这里的授予权限并不是一次性的,而是授予后,只要你没有卸载或者清除APP所有的数据js搜索框代码,那么这个权限是永久存在的,即便是你重启了手机,也无所谓.所以我比较推荐使用这种方式.

  那么你可以通过下面这条命令,在电脑上对手机上的autojs进行授权.

  <pre class="code-snippet__js" data-lang="css">adb shell pm grant org.autojs.autojspro [android][10].permission.WRITE_SECURE_SETTINGS</pre>

  adb shell pm grant后面跟的是你要授权APP的包名,然后后面的是要授予的权限.

  js搜索框代码_js实现搜索框匹配查询_js搜索框代码

  当你授权完毕后, 就可以使用AutojsPro自身来切换已经安装的输入法了.那么具体的方法:

  <pre class="code-snippet__js" data-lang="javascript">importClass( "android.content.Context" );`// 要切换输入法的包名/服务的类名, 如果服务类名中包含包名那么包名可以替换成 . 来代替// 例如 com.sohu.inputmethod.sogou.xiaomi/com.sohu.inputmethod.sogou.xiaomi.SogouIME// 可以写成 com.sohu.inputmethod.sogou.xiaomi/.SogouIMElet NewInputMethodName = "com.sohu.inputmethod.sogou.xiaomi/.SogouIME";let imm = context.getSystemService( Context.INPUT_METHOD_SERVICE );`imm.setInputMethod( null, NewInputMethodName );</pre>

  下面的代码可以获取到当前手机已安装输入法的包名和服务类名:

  js搜索框代码_js实现搜索框匹配查询_js搜索框代码

  <pre class="code-snippet__js" data-lang="javascript">//注意imm等同于上面的imm`let list = imm.getInputMethodList();let inputMethodInfo = {}; for ( let i in list ) { let inputInfo = list.get(i); let inputPackageName = inputInfo.getPackageName(); let inputServiceName = inputInfo.getServiceName(); inputMethodInfo[ "input"+i ] = {}; inputMethodInfo[ "input"+i ].packageName = inputPackageName; inputMethodInfo[ "input"+i ].serviceName = inputServiceName;}`console.log( inputMethodInfo );</pre>

  <pre class="code-snippet__js" data-lang="css">imm.setInputMethod(IBinder token, NewInputMethodName);</pre>

  最后,对于代码中的这一句代码来说,有人说必须有token传入,才可以切换输入法,但是我在我的平板上使用切换输入法时,直接传入的null,也可以成功的切换输入法,这里的token代表的是什么,我没有再往深处研究,如果你们传入null后,无法切换输入法,那再探讨一下这个token的作用吧.

  js搜索框代码_js实现搜索框匹配查询_js搜索框代码

  另外还有一种弹窗切换的方式可供选择, 这种方式不需要有系统权限即可实现.

  <pre class="code-snippet__js" data-lang="css">imm.showInputMethodPicker();</pre>

  时间不早了,早点睡吧

  js搜索框代码_js搜索框代码_js实现搜索框匹配查询

  js搜索框代码_js实现搜索框匹配查询_js搜索框代码

  js搜索框代码_js实现搜索框匹配查询_js搜索框代码

  js搜索框代码_js实现搜索框匹配查询_js搜索框代码

  ~祝大家新年快乐...

文章由官网发布,如若转载,请注明出处:https://www.veimoz.com/1843
0 评论
701

发表评论

!