WXdraw.js 9.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371
  1. //画布
  2. var canvas;
  3. var context;
  4. //蒙版
  5. var canvas_bak = document.getElementById("box");;
  6. var context_bak;
  7. var canvasWidth = 720;
  8. var canvasHeight = 1280;
  9. var canvasTop;
  10. var canvasLeft;
  11. var winHeight = window.screen.height - window.innerHeight
  12. var vowidth = window.screen.width
  13. var topwinHeightDraw = window.screen.height - window.innerHeight + 30; //计算title top 头部
  14. var numse = window.screen.height //-winHeight
  15. //计算title top 头部
  16. if (numse <= 70) {
  17. var voheight = window.screen.height - winHeight - 34 - 20
  18. } else {
  19. console.log("numse>>>", numse)
  20. var voheight = window.screen.height - topwinHeightDraw - 20
  21. }
  22. //画笔大小
  23. var size = 1;
  24. var color = '#000000';
  25. var resolving
  26. var url = window.location.href;
  27. url = url.split('/')
  28. var query = window.location.search.substring(1);
  29. var vars = query.split("&");
  30. var data = {}
  31. var clientType = vars.find(e => {
  32. return e.startsWith('clientType')
  33. }) || ''
  34. var cardIp = vars.find(e => {
  35. return e.startsWith('cardIp')
  36. }) || ''
  37. var port = vars.find(e => {
  38. return e.startsWith('port')
  39. }) || ''
  40. var sn = vars.find(e => {
  41. return e.startsWith('sn')
  42. }) || ''
  43. var username = vars.find(e => {
  44. return e.startsWith('username')
  45. }) || ''
  46. var userCardId = vars.find(e => {
  47. return e.startsWith('userCardId')
  48. }) || ''
  49. var ip = vars.find(e => {
  50. return e.startsWith('ip')
  51. }) || ''
  52. var data = {}
  53. data.clientType = clientType.substring(11, clientType.length)
  54. data.cardIp = cardIp.substring(7, cardIp.length)
  55. data.port = port.substring(5, port.length)
  56. data.sn = sn.substring(3, sn.length)
  57. data.username = username.substring(9, username.length)
  58. data.userCardId = userCardId.substring(11, userCardId.length)
  59. data.ip = ip.substring(3, ip.length)
  60. urlss = '192.168.31.20'
  61. var parameters = GetRequest();
  62. var form = {};
  63. form.clientType = parameters['clientType'];
  64. form.cardIp = parameters['cardIp'];
  65. form.port = parameters['port'];
  66. form.sn = parameters['sn'];
  67. form.username = parameters['username'];
  68. form.userCardId = parameters['userCardId'];
  69. form.ip = parameters['ip'];
  70. form.domainName = parameters["domainName"];
  71. var isWSS = false;
  72. var cUrl = isWSS ? "wss://" + form.domainName + "/card?cardIp=" + form.ip : "ws://" + form.domainName + "/card?cardIp=" + form.ip;
  73. console.log(cUrl, 'curl')
  74. var wsss = new WebSocket(cUrl);
  75. console.log('wsssss==============', wsss)
  76. wsss.binaryType = 'arraybuffer';
  77. wsss.onopen = function () {
  78. var pings = {
  79. "event": "getScreenStatus"
  80. }
  81. wsss.send(JSON.stringify(pings));
  82. var bitRate = {
  83. "data": {
  84. "bitRate": 2243000
  85. },
  86. "event": "bitRate"
  87. }
  88. console.log('打开安卓卡wsss.onopen========', data.sn)
  89. wsss.send(ExexuteMove(JSON.stringify(bitRate), data.sn))
  90. };
  91. wsss.onmessage = function (event) {
  92. };
  93. wsss.onclose = function (event) {
  94. console.log("onclose==============");
  95. };
  96. wsss.onerror = function (event) {
  97. console.log("onerror==============");
  98. };
  99. $('#box').on("click", function () {
  100. draw_graph('pencil', this)
  101. })
  102. //剪切板
  103. $(".upload").on("click", function () {
  104. let texts = $(this).attr("data-text")
  105. if (texts == "uploads") {
  106. $(".mainbox").css({
  107. "display": "block"
  108. })
  109. $(".sbox").css({
  110. "display": "none"
  111. })
  112. } else if (texts == "Signout") {
  113. // alert()
  114. }
  115. })
  116. //home 控制home
  117. $(".botmat1img").on("click", function () {
  118. let codes = $(this).attr("data-text")
  119. console.log("homehomehome---------", codes)
  120. if (codes == "home") {
  121. console.log("打印主页json", data.sn)
  122. wsss.send(ExexuteKeyBoard(3, data.sn));
  123. } else if (codes == "return") {
  124. wsss.send(ExexuteKeyBoard(4, data.sn));
  125. } else if (codes == "gengduo") {
  126. wsss.send(ExexuteKeyBoard(187, data.sn));
  127. }
  128. })
  129. //高清控制
  130. $(".PictureQuality").on("click", function () {
  131. $(this).addClass("avit").siblings().removeClass('avit')
  132. let id = $(this).attr("data-id")
  133. var bitRate = {
  134. "data": {
  135. "bitRate": id
  136. },
  137. "event": "bitRate"
  138. }
  139. console.log('打开安卓卡11==============', data.sn)
  140. wsss.send(ExexuteMove(JSON.stringify(bitRate), data.sn))
  141. console.log(id)
  142. })
  143. //画图形
  144. var draw_graph = function (graphType, obj) {
  145. console.log('111》》》', graphType)
  146. //把蒙版放于画板上面
  147. $("#container").css("z-index", 30);
  148. $("#dedit").css("z-index", 20);
  149. //先画在蒙版上 再复制到画布上
  150. chooseImg(obj);
  151. var canDraw = false;
  152. var startX;
  153. var startY;
  154. //鼠标按下获取 开始xy开始画图
  155. var touchstart = function (e) {
  156. $('.control-right-img').attr({
  157. "data-id": "2"
  158. })
  159. $(".leftmains").css({
  160. "right": "-4rem"
  161. })
  162. // .toFixed(2)
  163. var touchfor = e.originalEvent.targetTouches; //for 的手指数组
  164. var touch = e.originalEvent.targetTouches[0];
  165. var thochlethng = e.originalEvent.targetTouches.length
  166. //是否横屏
  167. if (resolving == 0) {
  168. let ping
  169. for (let i = 0; i < touchfor.length; i++) {
  170. let cawidthXs = touchfor[i].pageY * (1280 / voheight)
  171. let caheightYs = 720 - touchfor[i].pageX * (720 / vowidth)
  172. ping = {
  173. "data": {
  174. "action": 0,
  175. "count": touchfor.length,
  176. "pointerId": i,
  177. "x": cawidthXs.toFixed(2),
  178. "y": caheightYs.toFixed(2)
  179. },
  180. "event": "0"
  181. }
  182. }
  183. console.log('打开安卓卡鼠标按下获取 开始xy开始画图======', data.sn)
  184. wsss.send(ExexuteMove(JSON.stringify(ping), data.sn))
  185. console.log("鼠标按下>>>", ping, data.sn)
  186. } else {
  187. let ping
  188. for (let i = 0; i < touchfor.length; i++) {
  189. let cawidthXs = touchfor[i].pageX * (720 / vowidth)
  190. let caheightYs = touchfor[i].pageY * (1280 / voheight)
  191. ping = {
  192. "data": {
  193. "action": 0,
  194. "count": touchfor.length,
  195. "pointerId": i,
  196. "x": cawidthXs.toFixed(2),
  197. "y": caheightYs.toFixed(2)
  198. },
  199. "event": "0"
  200. }
  201. }
  202. console.log('打开安卓卡=22=============', data.sn)
  203. wsss.send(ExexuteMove(JSON.stringify(ping), data.sn))
  204. console.log("鼠标按下>>>", ping, data.sn)
  205. }
  206. canDraw = true;
  207. };
  208. //鼠标离开 把蒙版canvas的图片生成到canvas中
  209. var touchend = function (e) {
  210. var touchfor = e.originalEvent.changedTouches; //for 的手指数组
  211. var touch = e.originalEvent.changedTouches[0];
  212. var thochlethng = e.originalEvent.changedTouches.length
  213. //是否横屏 morePortionUp
  214. if (resolving == 0) {
  215. let ping
  216. for (let i = 0; i < touchfor.length; i++) {
  217. let cawidthXs = touchfor[i].pageY * (1280 / voheight)
  218. let caheightYs = 720 - touchfor[i].pageX * (720 / vowidth)
  219. ping = {
  220. "data": {
  221. "action": 1,
  222. "count": touchfor.length,
  223. "pointerId": i,
  224. "x": cawidthXs.toFixed(2),
  225. "y": caheightYs.toFixed(2)
  226. },
  227. "event": "1"
  228. }
  229. }
  230. console.log('打开安卓卡==33============', data.sn)
  231. wsss.send(ExexuteMove(JSON.stringify(ping), data.sn))
  232. } else {
  233. let ping
  234. for (let i = 0; i < touchfor.length; i++) {
  235. let cawidthXs = touchfor[i].pageX * (720 / vowidth)
  236. let caheightYs = touchfor[i].pageY * (1280 / voheight)
  237. ping = {
  238. "data": {
  239. "action": 1,
  240. "count": touchfor.length,
  241. "pointerId": i,
  242. "x": cawidthXs.toFixed(2),
  243. "y": caheightYs.toFixed(2)
  244. },
  245. "event": "1"
  246. }
  247. }
  248. console.log('打开安卓卡=55=============', data.sn)
  249. wsss.send(ExexuteMove(JSON.stringify(ping), data.sn))
  250. }
  251. canDraw = false;
  252. };
  253. //清空层 云手机超出屏幕的开关
  254. var clearContext = function (type) {
  255. canDraw = false;
  256. }
  257. // 鼠标移动
  258. var touchmove = function (e) {
  259. e = e || window.event;
  260. var touchfor = e.originalEvent.targetTouches; //for 的手指数组
  261. var touch = e.originalEvent.targetTouches[0];
  262. var thochlethng = e.originalEvent.targetTouches.length
  263. let ping
  264. //是否横屏 morePortionMove
  265. if (resolving == 0) {
  266. let obj = []
  267. for (let i = 0; i < touchfor.length; i++) {
  268. let cawidthXs = touchfor[i].pageY * (1280 / voheight)
  269. let caheightYs = 720 - touchfor[i].pageX * (720 / vowidth)
  270. ping = {
  271. "data": {
  272. "action": 2,
  273. "count": touchfor.length,
  274. "pointerId": i,
  275. "x": cawidthXs.toFixed(2),
  276. "y": caheightYs.toFixed(2)
  277. },
  278. "event": "2"
  279. }
  280. }
  281. console.log('打开安卓卡==66============', data.sn)
  282. wsss.send(ExexuteMove(JSON.stringify(ping), data.sn))
  283. } else {
  284. let ping
  285. for (let i = 0; i < touchfor.length; i++) {
  286. let cawidthXs = touchfor[i].pageX * (720 / vowidth)
  287. let caheightYs = touchfor[i].pageY * (1280 / voheight)
  288. ping = {
  289. "data": {
  290. "action": 2,
  291. "count": touchfor.length,
  292. "pointerId": i,
  293. "x": cawidthXs.toFixed(2),
  294. "y": caheightYs.toFixed(2)
  295. },
  296. "event": "2"
  297. }
  298. }
  299. console.log('打开安卓卡==88============', data.sn)
  300. wsss.send(ExexuteMove(JSON.stringify(ping), data.sn))
  301. }
  302. };
  303. //鼠标离开区域以外 除了涂鸦 都清空
  304. var mouseout = function () {
  305. if (graphType != 'handwriting') {
  306. clearContext();
  307. }
  308. }
  309. $(canvas_bak).unbind();
  310. $(canvas_bak).bind('touchstart', touchstart);
  311. $(canvas_bak).bind('touchmove', touchmove);
  312. $(canvas_bak).bind('touchend', touchend);
  313. $(canvas_bak).bind('mouseout', mouseout);
  314. }
  315. //选择功能按钮 修改样式
  316. function chooseImg(obj) {
  317. }
  318. function GetRequest() {
  319. var url = location.search; // 获取url中"?"符后的字串
  320. var obj = new Object();
  321. if (url.indexOf("?") != -1) {
  322. var str = url.substr(1);
  323. strs = str.split("&");
  324. for (var i = 0; i < strs.length; i++) {
  325. obj[strs[i].split("=")[0]] = (strs[i].split("=")[1]);
  326. }
  327. }
  328. return obj;
  329. }