Demo.html 8.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176
  1. <!DOCTYPE html>
  2. <html lang="en" xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta charset="utf-8" />
  5. <title>Demo</title>
  6. <style>
  7. a {
  8. margin:20px;
  9. }
  10. </style>
  11. </head>
  12. <body>
  13. <div style="text-align: center;">JS开发接口</div>
  14. <div style="text-align: left;">JS-API调用说明</div>
  15. <div style="text-align: left;">
  16. <ul>
  17. <li>在任何支持js的html中,使用标准的js方式均可调用本地窗口所暴露出来的API。</li>
  18. <li>本地窗口已为js使用封装了公用对象,对象名称为:windowEx</li>
  19. <li>js调用实例:windowEx.方法名(参数列表),如:windowEx.setLong(1000)</li>
  20. </ul>
  21. </div>
  22. <div style="text-align: left;">窗口API</div>
  23. <div style="text-align: left;">
  24. <ul>
  25. <li>1、关闭窗口。API方法:windowEx.Close()</li>
  26. <li><a href="javascript:windowEx.Close()">立即测试</a></li>
  27. <li>2、最小化窗口。API方法:windowEx.Min()</li>
  28. <li><a href="javascript:windowEx.Min()">立即测试</a></li>
  29. <li>3、打开屏幕键盘。API方法:windowEx.ShowOsk()</li>
  30. <li><a href="javascript:windowEx.ShowOsk('0','0')">立即测试</a></li>
  31. <li>4、立即退出应用。API方法:windowEx.Exit()</li>
  32. <li><a href="javascript:windowEx.Exit()">立即测试</a></li>
  33. <li>5、日志打印并记录到日志文件中。API方法:windowEx.PrintLog(string txt)</li>
  34. <li><a href="javascript:windowEx.PrintLog('this is test log content!!!')">立即测试</a>JS代码:windowEx.PrintLog('this is test log')</li>
  35. <li>6、设置窗口大小。API方法:windowEx.Size(int w,int h)</li>
  36. <li><a href="javascript:windowEx.Size(600,400)">立即测试</a>JS代码:windowEx.Size(600,400)</li>
  37. <li>7、设置窗口位置。API方法:windowEx.Position(string code)。code支持:center(居中),right_bottom(右下角),right_top(右上角)</li>
  38. <li><a href="javascript:windowEx.Position('center')">立即测试</a>JS代码:windowEx.Size('center')</li>
  39. <li>8、新窗口。API方法:windowEx.NewWin(string url,int w,int h,string positioncode)。code支持:center(居中),right_bottom(右下角),right_top(右上角)</li>
  40. <li><a href="javascript:windowEx.NewWin('https://www.baidu.com',300,700,'right_bottom')">立即测试</a>JS代码:windowEx.NewWin('https://www.baidu.com',300,700,'right_bottom')</li>
  41. <li>9、【回调API】网络/服务器连接中断通知。方法定义:NetEventNotice(string msg)</li>
  42. <li>JS代码:function NetEventNotice(msg){}</li>
  43. <li>10、【回调API】办公环境安全检测结果通知。方法定义: SecurityEventNotice(string msg)</li>
  44. <li>JS代码:function SecurityEventNotice(level,msg){}</li>
  45. <li>11、获取当前的授权信息。API方法:windowEx.GetSignInfo()</li>
  46. <li><a href="javascript:windowEx.GetSignInfo('receiverSinginfoFunc')">立即测试</a>JS代码:windowEx.GetSignInfo("receiverSinginfoFunc")</li>
  47. </div>
  48. <div style="text-align: left;">文档服务</div>
  49. <div style="text-align: left;">
  50. <ul>
  51. <li>1、打印服务器文件。API方法:windowEx.PrintWebFile(string url,string filetype)</li>
  52. <li><a href="javascript:windowEx.PrintWebFile('http://8.142.173.95:10086/static/download/exp_data_20230525114922.xlsx','xlsx')">立即测试</a></li>
  53. <li>1、打开本地文件。API方法:windowEx.OpenFile(string url)</li>
  54. <li><a href="javascript:windowEx.OpenFile('G:\\工作目录\\project\\企业S文档管理\\聚合智慧文档产品简介.pptx')">立即测试</a></li>
  55. </ul>
  56. </div>
  57. <div style="text-align: left;">音频播放API</div>
  58. <div style="text-align: left;">
  59. <ul>
  60. <li>立即播放声音。API方法:windowEx.Play(string ind,string filename)
  61. <br>
  62. 参数ind说明:0-4表示播放系统声音,此时filename参数传空即可。其中0为Asterisk提示音;1为Beep提示音;2为Exclamation提示音;3为Hand提示音;4为Question提示音。
  63. <br>
  64. 参数filename说明:播放的声音文件名称,仅支持mp3格式,播放时需要保证程序目录下声音文件已存在。ind为"9"时有效。
  65. </li>
  66. <li>ind="0"时的Asterisk提示音:<a href="javascript:windowEx.Play('0','')">立即测试</a>JS代码:windowEx.Play('0','')</li>
  67. <li>ind="1"时的Beep提示音:<a href="javascript:windowEx.Play('1','')">立即测试</a>JS代码:windowEx.Play('1','')</li>
  68. <li>ind="2"时的Exclamation提示音:<a href="javascript:windowEx.Play('2','')">立即测试</a>JS代码:windowEx.Play('2','')</li>
  69. <li>ind="3"时的Hand提示音:<a href="javascript:windowEx.Play('3','')">立即测试</a>JS代码:windowEx.Play('3','')</li>
  70. <li>ind="4"时的Question提示音:<a href="javascript:windowEx.Play('4','')">立即测试</a>JS代码:windowEx.Play('4','')</li>
  71. <li>ind="9"时的"登录成功"提示音:<a href="javascript:windowEx.Play('9','登录成功')">立即测试</a> JS代码:javascript:windowEx.Play('9','登录成功')</li>
  72. <li>ind="9"时的文字转语音播报:<a href="javascript:windowEx.Play('9','检测任务已完成')">立即测试</a> JS代码:javascript:windowEx.Play('9','检测任务已完成')</li>
  73. </ul>
  74. </div>
  75. <div style="text-align: left;">二维码API</div>
  76. <div style="text-align: left;">
  77. <ul>
  78. <li>1、开始扫码。API方法:windowEx.StartScanQrCode(callbackFuncName)</li>
  79. <li><a href="javascript:windowEx.StartScanQrCode('getQrCode')">立即测试</a><span id="qrCodeValue"></span></li>
  80. <li>2、停止扫码。API方法:windowEx.StopScanQrCode()</li>
  81. <li><a href="javascript:windowEx.StopScanQrCode()">立即测试</a></li>
  82. </ul>
  83. </div>
  84. <div style="text-align: left;">摄像头API</div>
  85. <div>
  86. <a id="start" href="javascript:init()">初始化设备</a>
  87. <a id="start" href="javascript:start()">开始录像</a>
  88. <a id="stop" href="javascript:stop()">停止录像</a>
  89. <a id="play" href="javascript:play()">播放录像</a>
  90. <a id="upload" href="javascript:upload()">上传录像</a>
  91. <a id="start" href="javascript:setVideoTime()">设置60秒时长(默认为30秒)</a>
  92. <select id="wh" onchange="changeWH(this)"></select>
  93. </div>
  94. <div id="hint"></div>
  95. <div><video id="audio_id" src=""></video></div>
  96. </body>
  97. </html>
  98. <script language="javascript">
  99. var hint = document.getElementById("hint");
  100. var recordTime = 30;
  101. var videoPath = "";
  102. function setVideoTime() {
  103. recordTime = 60;
  104. windowEx.setLong(recordTime);
  105. }
  106. function init() {
  107. var re = windowEx.Init("0");
  108. }
  109. function getQrCode(qrcodeStr){
  110. document.getElementById("qrCodeValue").innerHTML=qrcodeStr;
  111. }
  112. function NetEventNotice(msg){
  113. if(msg!="") alert(msg)
  114. }
  115. function receiverSinginfoFunc(sign){
  116. alert(sign);
  117. }
  118. function start() {
  119. //if (windowEx.SetPix(640, 480) == 0) {
  120. // alert("无效的分辩率设置。");
  121. // return;
  122. //}
  123. hint.innerHTML = "正在启动录像设备...";
  124. windowEx.button_start_Click();
  125. hint.innerHTML = "正在录像中...";
  126. if(recordTime>0) checkResult();
  127. }
  128. function stop() {
  129. windowEx.button_stop_Click();
  130. hint.innerHTML = "已停止录像...";
  131. }
  132. function play() {
  133. if (videoPath == '') {
  134. alert("未开始录制或录制还未完成。");
  135. return;
  136. }
  137. document.getElementById("audio_id").src= videoPath;
  138. }
  139. //视频录像结束的回调函数
  140. //path:视频文件的本地路径
  141. function RecordFinish(path)
  142. {
  143. hint.innerHTML = path;
  144. }
  145. //判断是否录制结束
  146. function checkResult() {
  147. setTimeout(function () {
  148. recordTime--;
  149. if (recordTime <= 0) {
  150. //录制完成,获取本地文件路径
  151. videoPath = windowEx.GetVideoLocalPath();
  152. hint.innerHTML = videoPath;
  153. }
  154. else {
  155. checkResult();
  156. }
  157. },1000)
  158. }
  159. function QueryVideoCapabilities(lst) {
  160. var lst = eval("(" + lst + ")");
  161. var wh = document.getElementById("wh");
  162. var tmpary = [];
  163. for (var i = 0; i < lst.length; i++) {
  164. tmpary.push("<option value="+i+">"+lst[i].w+" "+lst[i].h+"</option>");
  165. }
  166. wh.innerHTML = tmpary.join("");
  167. }
  168. function changeWH(e) {
  169. windowEx.SetPixIndex(document.getElementById("wh").value);
  170. }
  171. </script>