SubProcess 接口使用指南
在嵌入式应用程序中,此页面上的 JavaScript 可以使用
window.appletSubProcessObject对象执行表达式代码并与后端交互,仅支持1.4及以上的版本。初始化通信通道
在应用程序加载时,设置通信通道以便 JavaScript 可以与 Path 通信。
将qwebchannel.js文件加载到你的应用程序中:
html <head> <script language="javascript" src="./qwebchannel.js"></script> </head>你可以从指定位置获取
qwebchannel.js并将其部署到你的应用程序的 Web 服务器中。创建 Web 通道通信对象
在应用程序加载完成后,创建 Web 通道通信对象:
javascript new QWebChannel(qt.webChannelTransport, channel=> { for(const i in channel.objects){ const name = 'applet'+i.charAt(0).toUpperCase() + i.slice(1)+'Object'; if(!window.hasOwnProperty(name)){ window[name] = channel.objects[i] } } console.log('init done'); });或javascript window.onload = function() { if (!qt || !qt.webChannelTransport) { return; } new QWebChannel(qt.webChannelTransport, function(channel) { window.appletSubProcessObject = channel.objects.process; }); }执行表达式打开,2.1开始的版本接口
字符串表达式
javascript if (window.appletSubProcessObject) { window.appletSubProcessObject.create( false, //是否启用base64 function(result) { alert(result); } ); }执行表达式打开,2.1开始的版本接口
字符串表达式
javascript if (window.appletSubProcessObject) { window.appletSubProcessObject.clearAll( function(result) { alert(result); } ); }执行表达式打开,2.1开始的版本接口
字符串表达式
javascript if (window.appletSubProcessObject) { window.appletSubProcessObject.clear( id,//id在create的返回值里面 function(result) { alert(result);//清理进程 } ); }执行表达式打开,2.1开始的版本接口
字符串表达式
javascript if (window.appletSubProcessObject) { window.appletSubProcessObject.kill( id,//id在create的返回值里面 function(result) { alert(result);//结束进程运行 } ); }执行表达式打开,2.1开始的版本接口
字符串表达式
javascript if (window.appletSubProcessObject) { window.appletSubProcessObject.cwd( id,//id在create的返回值里面 function(result) { alert(result);//返回工作目录 } ); }执行表达式打开,2.1开始的版本接口
字符串表达式
javascript if (window.appletSubProcessObject) { window.appletSubProcessObject.setCwd( id,//id在create的返回值里面 'c:/'//设置工作目录 function(result) { alert(result); } ); }执行表达式打开,2.1开始的版本接口
字符串表达式
javascript if (window.appletSubProcessObject) { window.appletSubProcessObject.setEnv( id,//id在create的返回值里面 env, //['a=b','b=c'] or {a:b,b:c} function(result) { alert(result); } ); }执行表达式打开,2.1开始的版本接口
字符串表达式
javascript if (window.appletSubProcessObject) { window.appletSubProcessObject.env( id,//id在create的返回值里面 false, //返回字典或者列表 function(result) { alert(result); } ); }执行表达式打开,2.1开始的版本接口
需要先启用对应的权限
window.appletSubProcessObject.Execute字符串表达式
javascript if (window.appletSubProcessObject && window.appletSubProcessObject.Execute) { window.appletSubProcessObject.start( id,//id在create的返回值里面 cmd, //['xxx.exe','-f','1'] or 'xxx.exe -f 1' window.appletSubProcessObject.OpenMode.ReadWrite, //模式可以不填 function(result) { alert(result); } ); }执行表达式打开,2.1开始的版本接口
需要先启用对应的权限
window.appletSubProcessObject.Execute字符串表达式
javascript if (window.appletSubProcessObject && window.appletSubProcessObject.Execute) { window.appletSubProcessObject.execute( cmd, //['xxx.exe','-f','1'] or 'xxx.exe -f 1' env, //['a=b','b=c'] or {a:b,b:c} false, 是否启用base64 -1,//默认强制等待时间 ms,-1表示无线时间 function(result) { alert(result); } ); }执行表达式打开,2.1之前的版本接口
需要先启用对应的权限
window.appletSubProcessObject.Execute并提供一个回调函数,第一个参数是需要执行的命令,可以使用列表或者字符串,第二个参数是等待的时间,默认是30000毫秒。当代码执行完成时,将调用该函数并返回结果。字符串表达式
javascript if (window.appletSubProcessObject && window.appletSubProcessObject.Execute) { window.appletSubProcessObject.runCommand( "net", 3000,//默认强制等待时间 ms,-1表示无线时间 function(result) { alert(result); } ); }