注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

圆兔工具箱官网

微信公众号:圆兔(微信号:ytgjxapp)

 
 
 

日志

 
 

Tasker笔记之JavaScript(持续更新中)  

2013-11-11 11:17:53|  分类: 8.安卓 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

这是我学Tasker的长期更新的笔记和个人实践总结,都是干货,都是自己觉得重要的东西,因为是从很旧的版本就开始学习的,所以有些可能已经按新的版本和经验更新改过了,有些可能还是旧的。
==代码说明=======================
每行末尾用";"结束
JavaScript(let)和Web视图元素中直接通过函数名称调用动作,但Web视图内容为URL模式的函数前面需要前缀“tk.”
int level:级别
bool *:true/false
bool onFlag:on/off
boolean visible:visible/invisible
Audio Streams:call, system, ringer, media, alarm or notification
Colours:AARRGGBB(透明度加RGB16进制格式)
File Paths:绝对(/开头),相对(非/开头,相对于SD卡的根目录,如pics/me.jpg相当于/sdcard/pics/me.jpg)
==Javascrpit/shell/sl4a类=======================
执行顺序:同一时间只执行一个脚本,一段JavaScript执行时不能被另一段中断。
exit()停止Javascrpit
wait( int durationMilliseconds )等待,某些情况可能会导致进行中的操作无法完成,如不能肯定可用setTimeout()代替。
shell( str command, bool asRoot, int timoutSecs )执行shell命令,命令失败会显示"undefined",最大约750K。asRoot:使用root
sl4a( str scriptName, boolean inTerminal )运行已建立的SL4A脚本
==Tasker类=======================
enableProfile( str name, boolean enable )配置文件是否启用
profileActive( str profileName )配置文件是否激活,配置文件名未知的为false
==任务类=======================
performTask( str taskName, int priority, str parameterOne, str parameterTwo )执行任务,JavaScript不停留
taskRunning( str taskName )任务是否正在执行,未知任务名返回false。
==变量类=======================
在javascript中使用Tasker的全局变量
global('变量名')取值,变量名可不加%
setGlobal('变量名',新值),设置值,变量名可不加%
local( str varName )取得Tasker场景本地变量值,可不加%,只用于嵌入HTML的JavaScript,只在Web视图元素存取
var 变量名 = *; 变量声明和取值
变量名.substring(n1,n2); 变量第n1个到第n2个字符,第1个为0,包括n1不包括n2
变量名.length;变量字符长度
JavaScript(let)操作中,本地变量(必须全部小写可包括下划线)可直接引用且无需前面的%,如果值被脚本改变,以后将使用新的值
嵌入HTML的JavaScript,必须用local和setLocal函数使变量成为场景Web视图元素的本地化变量
convert( str val, str conversionType )转换
conversionType: byteToKbyte, byteToMbyte, byteToGbyte, datetimeToSec, secToDatetime, secToDatetimeM, secToDatetimeL, htmlToText, celsToFahr, fahrToCels, inchToCent, metreToFeet, feetToMetre, kgToPound, poundToKg, kmToMile, mileToKm, urlDecode解码, urlEncode加码, binToDec, decToBin, hexToDec, decToHex, base64encode base64decode, toMd5, toSha1, toLowerCase, toUpperCase, toUpperCaseFirst.
==数组类=======================
Tasker本地数组可直接在javascript(let)中使用,反之亦然,但Web视图除外
若Tasker中未定义数组,则需要在javascript中声明
arr = [];等号前面为数组名
数组序号JavaScript从0开始,Tasker从1开始
数组符号JavaScript用[],Tasker用()
==杂项类=======================
reboot( str type )重启,机器需已root。type:normal/recovery/bootloader,省略则默认normal
shutdown()关机,机器需已root
setClipboard( str text, bool appendFlag )设置剪贴板,取值var clip = global( 'CLIP' );
settings( str screenName )打开系统设置。screenName:accessibility, addacount, airplanemode, apn, app, batteryinfo, appmanage bluetooth, date, deviceinfo, dictionary, display, inputmethod, internalstorage, locale, location, memorycard, networkoperator, powerusage, privacy, quicklaunch, security, mobiledata, search, sound, sync, wifi, wifiip or wireless.
getLocation( str source, bool keepTracking, int timeoutSecs )取得位置。source:gps/net/any;keepTracking:true保持source加快下次取得位置;坐标存取在全局变量%LOC(GPS)与或%LOCN(Net)
stopLocation()停止定位,对应之前的有设keepTracking的getLocation()
sendIntent( str action, str targetComp, str package, str class, str category, str data, str mimeType, str[] extras );发送intent,每一个未定义参数都必须指定。
targetComp: 目标应用组件类型receiver(默认)/activity/service;
package: the application package to limt the intent to
class: the application class to limit the intent to
category: none/alt/browsable/cardock/deskdock/home/info/launcher/preference/selectedalt/tab/test,无默认
extras: extra data to pass, in the format key:value. May be undefined. Maximum length 2.
Intent详解(http://bbs.hiapk.com/thread-7959-1-1.html
在一个Android应用中,主要是由四种组件组成的,这四种组件可参考“Android应用的构成”。
而这四种组件是独立的,它们之间可以互相调用,协调工作,最终组成一个真正的Android应用。
在这些组件之间的通讯中,主要是由Intent协助完成的。
Intent负责对应用中一次操作的动作、动作涉及数据、附加数据进行描述,Android则根据此Intent的描述,负责找到对应的组件,将 Intent传递给调用的组件,并完成组件的调用。
因此,Intent在这里起着一个媒体中介的作用,专门提供组件互相调用的相关信息,实现调用者与被调用者之间的解耦。
例如,在一个联系人维护的应用中,当我们在一个联系人列表屏幕(假设对应的Activity为listActivity)上,点击某个联系人后,希望能够跳出此联系人的详细信息屏幕(假设对应的Activity为detailActivity)
为了实现这个目的,listActivity需要构造一个 Intent,这个Intent用于告诉系统,我们要做“查看”动作,此动作对应的查看对象是“某联系人”,然后调用startActivity (Intent intent),
将构造的Intent传入,系统会根据此Intent中的描述,到ManiFest中找到满足此Intent要求的Activity,系统会调用找到的 Activity,即为detailActivity,最终传入Intent,detailActivity则会根据此Intent中的描述,执行相应的操作。
getVoice( str prompt, str languageModel, int timeout )语音转文本。语音获取失败值为undefined;prompt:获取语音时显示的标签;languageMode:web search/free-form语音识别引擎模式
say( str text, str engine, str voice, str stream, int pitch, int speed )朗读,script停留到读完。engine: 引擎,如com.svox.classic,默认为系统默认;voice: 语音(需引擎支持),默认当前系统语言;stream: 音频流;pitch: 1-10;speed: 1-10
==音频类=======================
soundEffects( bool setTo )音效(系统声音开关,入按键音)
speakerPhone( bool setFlag )扬声器开关
silentMode( str mode )静音模式。mode:off/vibrate/on
micMute( bool shouldMute )麦克风静音
alarmVol( int level, bool display, bool sound )声音设置其他btVoiceVol/callVol/dtmfVol/mediaVol/notificationVol/systemVol/ringerVol
audioRecord( str destPath, str source, str codec, str format )录音,JavaScript不停留,暂停用audioRecordStop()。destPath存储位置;source来源: def/mic/call/callout/callin;codec编码: amrn/amrw/aac;format格式: mp4/3gpp/amrn/amrw/amrr
musicPlay( str path, int offsetSecs, bool loop, str stream )音乐播放(Tasker内置音乐播放器),Tasker不停留。最后三个参数可省略,默认值分别是0,false,media;stream:音频流
musicBack( int seconds )音乐回退;musicSkip( int seconds )音乐快进;musicStop()音乐停止
==媒体类=======================
mediaControl( str action )媒体控制。action:next/pause/prev/toggle/stop
scanCard( str path )扫描卡,在SD卡中扫描新的/删除的多媒体内容,如果指定了文件则只扫描指定的文件
takePhoto( int camera, str resolution, str filePath, bool insertGallery )拍照
camera: 0后置,1前置; resolution分辨率:WxH格式,如640x840;
insertGallery是否插入图库
==网络类=======================
browseURL( str URL )打开网址
mobileData( bool set )移动数据开关
setAirplaneMode( bool setOn )飞行模式开关,取得状态:var 变量名 = global( 'AIR' );
setAirplaneRadios( str disableRadios )飞行模式下关闭的无线电,用逗号分隔cell,nfc,wifi,wimax,bt,取得状态:var 变量名 = global( 'AIRR' );
setAutoSync( bool setOn )自动同步开关
setBT( bool setOn )蓝牙开关,测试蓝牙状态用if ( global( 'BLUE' ) == "on" ) { doSomething(); }
setBTID( str toSet )蓝牙编号
setWifi( bool setOn )WIFI开关,状态取得if ( global( 'WIFI' ) == "on" ) { doSomething(); }
usbTether( bool set )usb共享开关
wifiTether( bool set )wifi共享开关
==输入类=======================
button( str name )模拟按下硬键,需机器已root。name:back/call/camera/endcall/menu/volup/voldown/search
goHome( int screenNum )返回主页。screenNum不是所有主屏幕程序都支持
dpad( str direction, int noRepeats )轨迹球,需机器已root。direction:up/down/left/right/press
type( str text, int repeatCount )输入,需机器已root。
==显示类=======================
displayAutoBright( bool onFlag )自动亮度
displayRotate( bool onFlag )自动旋转
displayTimeout( int hours, int minutes, int seconds )屏幕待机
haptics( bool onFlag )视觉反馈开关
nightMode( bool onFlag )夜间模式开关,只在车载模式下可见
lock( str title, str code, bool allowCancel, bool rememberCode, bool fullScreen, str background, str layout )锁定,JavaScript暂停直到密码输入或lock cancelled。code:解锁密码;allowCancel: 是否可以返回主屏幕;rememberCode: 闭屏前是否记住密码;background: 背景图(可选);layout: 自建场景布局
setWallpaper( str path )设置墙纸
statusBar( bool expanded )展开或合并状态栏
stayOn( str mode )保持开启。mode:never/ac/usb/any
systemLock()系统锁定(关闭屏幕并锁定键盘),辅助功能需开启
==电话类=======================
call( str num, bool autoDial )打电话。autoDial:自动拨号与否
endCall()结束通话
takeCall()打电话(接来电)
callBlock( str numMatch, bool showInfo )呼出限制
showInfo:设置了信息,当限制时会显示
callDivert( str fromMatch, str to, bool showInfo )呼叫转移
callRevert( str numMatch )停止呼叫限制和呼叫转移
carMode( bool onFlag )车载模式
==短信/彩信/邮件类=======================
sendSMS( str number, str text, boolean storeInMessagingApp );发短信
composeSMS( str to, str message )短信对话框,JavaScript不停留
composeMMS( str to, str subject, str message, str attachmentPath )彩信对话框,JavaScript不停留
composeEmail( str to, str subject, str message )Eamil对话框,JavaScript不停留
==文件类(路径名例'/sdcard')=======================
createDir( str dirPath, bool createParent, bool useRoot )新建目录。dirPath:新建目录名;createParent:父目录名,不存在会新建
deleteDir( str dirPath, bool recurse, bool useRoot )删除目录。recurse:子目录,目录非空必须指定
deleteFile( str filePath, int shredTimes, bool useRoot )删除文件。shredTimes:粉碎程度0-10
listFiles( str dirPath, bool hiddenToo )显示目录文件。分行显示,hiddenToo:是否显示“.”开头的文件
readFile( str path )读取文件
writeFile( str path, str text, bool append )写入文件。append:附加开关
zip( str path, int level, bool deleteOriginalAfter )压缩文件。level:压缩级别1-9;deleteOriginal: 删除原件
unzip( str zipPath, bool deleteZipAfter )解压缩文件。deleteZip:解压后是否删除压缩文件
==加密解密类(美国以外不可用)=======================
decryptFile( str path, str key, bool removeKey )解密文件。解密参数在Menu/Prefs/Action设置,不removeKey则之后加解密沿用同一key,下同
decryptDir( str path, str key, bool removeKey )解密整个目录
encryptFile( str path, str keyName, bool rememberKey, bool shredOriginal )加密文件。shredOriginal:粉碎源文件
encryptDir( str path, str keyName, bool rememberKey, bool shredOriginal )加密整个目录
setKey( str keyName, str passphrase )Set the passphrase for the specified keyName.
clearKey( str keyName )Clear the passphrase for the specified keyName.
==场景类=======================
createScene( str sceneName )创建场景
destroyScene( str sceneName )删除场景
hideScene( str sceneName )隐藏场景
showScene( str name, str displayAs, int hoffset, int voffset, bool showExitIcon, bool waitForExit )显示场景
displayAs显示为:Overlay/OverBlocking/OverBlockFullDisplay/Dialog/DialogBlur/DialogDim/ActivityFullWindow/ActivityFullDisplay/ActivityFullDisplayNoTitle;
hoffset, voffset水平位置/垂直位置: -100% to 100%(全屏则无关)
showExitIcon是否在右下角显示退出按钮;
waitForExit是否立刻继续任务;
elemVisibility( str scene, str element, boolean visible, int animationTimeMS )元素可见性
elemBackColour( str scene, str element, str startColour, str endColour )元素背景色
elemBorder( str scene, str element, int width, str colour )元素边框
elemText( str scene, str element, str position, str text )元素文字。position:repl替换/start前插入/end后插入
elemTextColour( str scene, str element, str colour )元素文字颜色
elemTextSize( str scene, str element, int size )元素文字大小
==图片类=======================
loadImage( str uri )加载图片到Tasker内置图片缓冲区。本地文件格式file://文件路径
cropImage( int fromLeftPercent, int fromRightPercent, int fromTopPercent, int fromBottomPercent )裁剪loadImage加载的图片
filterImage( str mode, int value )滤镜loadImage加载的图片。mode:bw黑白/eblue/egreen/ered/grey/alpha;value:1-254
flipImage( bool horizontal )翻转loadImage加载的图片。horizontal:true水平/false垂直
resizeImage( int width, int height )调整Tasker内置图片缓冲区图片尺寸
rotateImage( str dir, int degrees )旋转Tasker内置图片缓冲区图片。dir:left/right;degrees:45/90/135/180
saveImage( str path, int qualityPercent, bool deleteFromMemoryAfter )保存Tasker内置图片缓冲区图片
==警报类=======================
flash( str message )短显示
flashLong( str message )长显示
popup( str title, str text, bool showOverKeyguard, str background, str layout, int timeoutSecs )弹出框,JavaScript停留直到弹出框被关闭或超时。background: 背景图(可选);layout: 布局,自建场景
pulse( bool onFlag )震动提醒开关
vibrate( int durationMilliseconds )震动
vibratePattern( str pattern )震动模式。str pattern:逗号分隔的数字列表,第1个代表静默时间,第2个代表震动时间,以此类推,时间以毫秒为单位
enterKey( str title, str keyName, bool showOverKeyguard, bool confirm, str background, str layout, int timeoutSecs )密码输入对话框,JavaScript停留直到对话框关闭或到达超时。confirm: 密码是否需两次输入确认;background:可选,背景图片地址(a file path or file URI);layout: 布局,自建场景代替内建场景
==程序类=======================
loadApp( str name, str data, bool excludeFromRecents )加载程序。name:数据包名(先)/app标签(在导出的app中可能被本地化到另一种语言);data:in URI format and app-specific;excludeFromRecents:是否显示在最近程序列表
setAlarm( int hour, int min, str message, bool confirmFlag )设置警报,用默认闹钟程序,需安卓2.3+。onfirmFlag:指定是否应用应确认警报被设置;message:可选

  评论这张
 
阅读(6198)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017