| ¶Ô±ÈÐÂÎļþ |
| | |
| | | //åé _grwebapp_url æå®WEBæ¥è¡¨å®¢æ·ç«¯å®è£
ç¨åºçä¸è½½URLï¼å½éè¿WebSocketéè®¯ä¸æåæ¶ï¼æç¤ºç¨æ·ç¨æ¤URLä¸è½½ç¨åºè¿è¡å®è£
ã |
| | | //æç¨äºèªå¨æ´æ°WEBæ¥è¡¨å®¢æ·ç«¯æ¶ä¸è½½æ°çæ¬ï¼å¼åè
åºå° _grwebapp_url æ¹ä¸ºèªå·±æå¡å¨çURLï¼æ¹ä¾¿ç¨æ·ä»å¯è®¿é®çWEBæå¡å¨ä¸è½½ |
| | | //åé _grwebapp_version æå®èªå¨æ´æ°æ¶ï¼å®¢æ·ç«¯ç¨åºéè¦ççæ¬å·ï¼å¦æå°äºæ¤çæ¬å·ï¼åèªå¨è¿è¡æ´æ° |
| | | var _grwebapp_websocket = null, |
| | | _grwebapp_url = "http://www.rubylong.cn/download/gridreport6-webapp.exe", |
| | | _grwebapp_version = "6.8.2.0", |
| | | webapp_onmessage ; //妿éè¦ååºæ§è¡ä»»å¡åçæ¶æ¯ååºï¼åºè¯¥åä¸ä¸ªå称为 webapp_onmessage ç function |
| | | |
| | | function webapp_url_method_valid(url, method) { |
| | | if (!method) { |
| | | if (typeof url == "object") { |
| | | method = url.method; |
| | | url = url.url; |
| | | } |
| | | if (!method) { |
| | | method = /.grf|.txt|.xml|.json/.test(url) ? "GET" : "POST"; |
| | | } |
| | | } |
| | | return method; |
| | | } |
| | | |
| | | //æ¤å½æ°ç¨äºå¤æä¸ä¸ªå鿝å¦ä¸ºURLå符串ï¼å¦æç±»å为å符串ä¸é¦ä¸ªé空ç½å符ä¸ä¸ºâ<âä¸â{âå³å¤å®ä¸ºURL |
| | | //妿忰æ¯ä¸ä¸ªobject对象ï¼ä¸å
¶å
·æâurlâ屿§ï¼åå
¶æ¯HTTPParamå¯¹è±¡ï¼æ¯ä¸ä¸ªurlåæ° |
| | | var webapp_is_url = function (p) { |
| | | var index = 0, |
| | | len = p.length, |
| | | ch; |
| | | |
| | | //å¯¹è±¡å¦ææurl屿§ï¼å¤å®ä¸ºurl |
| | | if (typeof p == "object") { |
| | | return !!p.url; |
| | | } |
| | | |
| | | if (typeof p != "string") { |
| | | return 0; |
| | | } |
| | | |
| | | //é¦å
æ¾å°ç¬¬ä¸ä¸ªé空ç½å符 |
| | | while (index < len) { |
| | | ch = p[index]; |
| | | if (!/\s/g.test(ch)) |
| | | break; |
| | | index++; |
| | | } |
| | | |
| | | //妿䏿¯xmlæjsonææ¬ä¸²ï¼åå¤å®ä¸ºurl |
| | | return (ch != "{") && (ch != "<") && (p.substr(index, 4) != "_WR_"); |
| | | }; |
| | | |
| | | function webapp_ajax(method, url, callback, cbthis, params) { |
| | | var xmlhttp = new XMLHttpRequest(), |
| | | headers; |
| | | |
| | | xmlhttp.onreadystatechange = function () { |
| | | if (xmlhttp.readyState == 4 && xmlhttp.status > 0) { |
| | | callback.call(cbthis, xmlhttp, xmlhttp.status == 200); |
| | | } |
| | | } |
| | | |
| | | xmlhttp.onerror = function () { |
| | | callback.call(cbthis, xmlhttp, 0); |
| | | } |
| | | |
| | | if (typeof url == "object") { |
| | | headers = url.headers; |
| | | if (typeof headers == "string") { |
| | | headers = JSON.parse(headers) |
| | | } |
| | | |
| | | if (!method) { |
| | | method = url.method; |
| | | } |
| | | |
| | | if (!params) { |
| | | params = url.data; |
| | | } |
| | | |
| | | url = url.url; |
| | | } |
| | | |
| | | xmlhttp.open(webapp_url_method_valid(url, method), url, true); //弿¥è¯·æ±æ°æ® |
| | | |
| | | if (headers && typeof headers == "object") { |
| | | for (var key in headers) { |
| | | xmlhttp.setRequestHeader(key, headers[key]); |
| | | } |
| | | } |
| | | |
| | | xmlhttp.send(params); //POST æ PUT å¯ä»¥ä¼ éåæ° |
| | | } |
| | | |
| | | ///////////////////////////////////////////////////////////////////////////// |
| | | //å建å¯å¨WEBæ¥è¡¨å®¢æ·ç«¯çURLåè®®åæ° |
| | | function _gr_up_href(args) { |
| | | return "grwebapp://" + (args ? JSON.stringify(args) : ""); |
| | | } |
| | | |
| | | //éè¿URLåè®®å¯å¨WEBæ¥è¡¨å®¢æ·ç«¯ç¨åº |
| | | //åæ° appUpdate æå®æ¯å¦èªå¨æ´æ°WEBæ¥è¡¨å®¢æ·ç«¯ç¨åºï¼æ ¹æ®_grwebapp_versionä¸å·²ç»å®è£
çç¨åºçæ¬è¿è¡æ¯è¾ï¼æéè¿è¡èªå¨å级 |
| | | function webapp_urlprotocol_startup(appUpdate) { |
| | | var arg = appUpdate ? { |
| | | type: "update", |
| | | url: _grwebapp_url, |
| | | ver: _grwebapp_version |
| | | } : 0; |
| | | window.location.href = _gr_up_href(arg); |
| | | } |
| | | |
| | | //妿WEBæ¥è¡¨å®¢æ·ç«¯ç¨åºæªè¿è¡ï¼å
éè¿URLåè®®å¯å¨WEBæ¥è¡¨å®¢æ·ç«¯ç¨åº |
| | | //éç¥WEBæ¥è¡¨å®¢æ·ç«¯ç¨åºæ ¹æ®æ¨¡æ¿ä¸æ°æ®çURLï¼ä»¥åçæç±»åçç¸å
³åæ°è¿è¡æ¥è¡¨çæï¼ |
| | | function webapp_urlprotocol_run(args, report_url, data_url) { |
| | | if (report_url) { |
| | | args.report = report_url; |
| | | } |
| | | if (data_url) { |
| | | args.data = data_url; |
| | | } |
| | | |
| | | window.location.href = _gr_up_href(args); |
| | | } |
| | | |
| | | ///////////////////////////////////////////////////////////////////////////// |
| | | //æ£æ¥WebSocketæ¯å¦å·²ç»å建并éè®¯è¿æ¥æå |
| | | function webapp_ws_check(slience) { |
| | | if (!slience) { |
| | | if (!_grwebapp_websocket) { |
| | | alert("WebSocket没æåå»ºï¼æ æ³åéæ°æ®ï¼"); |
| | | } |
| | | else if (_grwebapp_websocket.readyState != 1) { |
| | | alert("WebSocketæ£å¨è¿æ¥ä¸ï¼æä¸è½åéæ°æ®ï¼"); |
| | | } |
| | | } |
| | | return _grwebapp_websocket && (_grwebapp_websocket.readyState === 1); |
| | | } |
| | | |
| | | //å建并éè®¯è¿æ¥WebSocket |
| | | function webapp_ws_create(onopen) { |
| | | //妿已ç»å建ï¼ä¸è¿æ¥æ£å¸¸ï¼åä¸è¦å次å建 |
| | | if (_grwebapp_websocket && _grwebapp_websocket.readyState === 1) { |
| | | return; |
| | | } |
| | | |
| | | //夿å½åæµè§å¨æ¯å¦æ¯æWebSocket |
| | | if ('WebSocket' in window) { |
| | | _grwebapp_websocket = new WebSocket("ws://127.0.0.1:22333"); |
| | | |
| | | //è¿æ¥æå建ç«çåè°æ¹æ³ |
| | | if (onopen) { |
| | | _grwebapp_websocket.onopen = function () { |
| | | //alert("_grwebapp_websocket.onopen"); |
| | | onopen(); |
| | | } |
| | | } |
| | | debugger; |
| | | //æ¥æ¶å°æ¶æ¯çåè°æ¹æ³ |
| | | if (window.webapp_onmessage) { |
| | | _grwebapp_websocket.onmessage = function (event) { |
| | | window.webapp_onmessage(event); |
| | | } |
| | | } |
| | | |
| | | _grwebapp_websocket.onerror = function () { |
| | | var children = document.body.children, |
| | | childrenLen = children.length, |
| | | referNode = childrenLen ? children[0] : null, |
| | | newNode = document.createElement("h3"); |
| | | |
| | | _grwebapp_websocket = null; |
| | | |
| | | //å¼¹åºalertæç¤ºä¿¡æ¯ï¼å¯ä¿®æ¹ä¸ºæ´éåç表述 |
| | | //alert("å建WebSocket失败ï¼å¯è½æ¯âWEBæ¥è¡¨å®¢æ·ç«¯ç¨åºâ卿¬æºæ²¡æå®è£
ï¼æå¨æ¥è¡¨ç½é¡µå è½½æ¶æ²¡æè°ç¨âwebapp_urlprotocol_startupâ彿°è¿è¡å¯å¨ã"); |
| | | alert("å建WebSocket失败ï¼å¯è½æ¯WEBæ¥è¡¨å®¢æ·ç«¯ç¨åºæ²¡æå¯å¨ï¼æå
¶å¨æ¬æºæ²¡æå®è£
ï¼è¯·æ ¹æ®ç½é¡µé¡¶é¨çæç¤ºè¿è¡ç¸åºçæä½ã"); |
| | | |
| | | //å¨ç½é¡µæåé¢å ä¸æç¤ºä¸è½½çæåï¼å¯ä¿®æ¹ä¸ºæ´éåç表述ä¸çé¢å½¢å¼ |
| | | //newNode.innerHTML = 'ç¹å«æç¤ºï¼<a href="' + _grwebapp_url + '">ç¹å»ä¸è½½WEBæ¥è¡¨å®¢æ·ç«¯ç¨åº</a>ï¼ä¸è½½ååå»ä¸è½½çæä»¶è¿è¡å®è£
ï¼å®è£
宿åéæ°æå¼å½åç½é¡µã'; |
| | | newNode.innerHTML = 'ç¹å«æç¤ºï¼å°è¯<a href="javascript:webapp_urlprotocol_startup();">å¯å¨WEBæ¥è¡¨å®¢æ·ç«¯ç¨åº</a>ãæ<a href="' + _grwebapp_url + '">ç¹å»ä¸è½½WEBæ¥è¡¨å®¢æ·ç«¯ç¨åº</a>ï¼ä¸è½½ååå»ä¸è½½çæä»¶è¿è¡å®è£
ï¼å®è£
宿åéæ°æå¼å½åç½é¡µã'; |
| | | document.body.insertBefore(newNode, referNode); |
| | | }; |
| | | |
| | | //è¿æ¥å
³éçåè°æ¹æ³ |
| | | _grwebapp_websocket.onclose = function () { |
| | | _grwebapp_websocket = null; |
| | | } |
| | | |
| | | //æè§è¿é¨åå¯ä»¥ä¸è¦ |
| | | //çå¬çªå£å
³éäºä»¶ï¼å½çªå£å
³éæ¶ï¼ä¸»å¨å»å
³é_grwebapp_websocketè¿æ¥ï¼é²æ¢è¿æ¥è¿æ²¡æå¼å°±å
³éçªå£ï¼serverç«¯ä¼æå¼å¸¸ã |
| | | //window.onbeforeunload = function () { |
| | | // if (_grwebapp_websocket) { |
| | | // _grwebapp_websocket.close(); |
| | | // } |
| | | //} |
| | | } |
| | | else { |
| | | alert('å½åæµè§å¨ä¸æ¯æHTML5çWebSocketï¼è¯·éç¨æ´æ°çæ¬çæµè§å¨ï¼') |
| | | } |
| | | } |
| | | |
| | | function webapp_build_one(pack, report, report_method, data, data_method, callback_fun, dataParams) { |
| | | if (!report) { |
| | | alert("å¨åæ°ä¸æ²¡æå®ä¹æ¥è¡¨æ¨¡æ¿çurlï¼æ¥è¡¨ä¸è½çæï¼"); |
| | | return; |
| | | } |
| | | |
| | | if (data) { |
| | | if (webapp_is_url(data)) { |
| | | webapp_ajax(data_method, data, function (xmlhttp, success) { |
| | | if (success) { |
| | | pack.data = xmlhttp.responseText; |
| | | callback_fun(); |
| | | } |
| | | else { |
| | | //alert("è½½å
¥æ¥è¡¨æ°æ®å¤±è´¥ï¼ååºæ¶æ¯ï¼" + xmlhttp.responseText); |
| | | window.open(data, "blank"); |
| | | } |
| | | }, undefined, dataParams); |
| | | } |
| | | else { |
| | | pack.data = (typeof data == "object") ? JSON.stringify(data) : data; |
| | | callback_fun(); |
| | | } |
| | | } |
| | | else { |
| | | pack.data = ""; |
| | | } |
| | | |
| | | if (webapp_is_url(report)) { |
| | | webapp_ajax(report_method, report, function (xmlhttp, success) { |
| | | if (success) { |
| | | pack.report = xmlhttp.responseText; |
| | | callback_fun(); |
| | | } |
| | | else { |
| | | //alert("è½½å
¥æ¥è¡¨æ¨¡æ¿å¤±è´¥ï¼ååºæ¶æ¯ï¼" + xmlhttp.responseText); |
| | | window.open(report, "blank"); |
| | | } |
| | | }); |
| | | } |
| | | else { |
| | | pack.report = (typeof report == "object") ? JSON.stringify(report) : report; |
| | | callback_fun(); |
| | | } |
| | | } |
| | | |
| | | //å°åæ°éè¿WebSocketåéç»WEBæ¥è¡¨å®¢æ·ç«¯ï¼WEBæ¥è¡¨å®¢æ·ç«¯æ§è¡å¯¹åºçä»»å¡ |
| | | //åæ°è¯´æï¼ |
| | | //argsï¼ |
| | | // æ¥è¡¨çæç¸å
³çåæ°ï¼ä¸ºä¸ä¸ªç»æä½å¯¹è±¡æç»æä½å¯¹è±¡æ°ç»ã |
| | | // å½åæ°ä¸ºæ°ç»æ¶ï¼è¡¨ç¤ºæ¯æ§è¡æ¹éä»»å¡ãæ¤æ¶åé¢ç report ä¸ data åæ°ä¸ä¼è¢«ç¨å°ã |
| | | // ç»æä½å¯¹è±¡çåä¸ªæ°æ®é¡¹è¯´æè¯·åè帮å©ä¸âWEBæ¥è¡¨(B/Sæ¥è¡¨)->WEBæ¥è¡¨å®¢æ·ç«¯->å¯å¨åæ°è¯´æâé¨å |
| | | //reportï¼ |
| | | // æ¥è¡¨æ¨¡æ¿ææ¬ï¼æ¥è¡¨å®ä¹æ ¼å¼å¿
须为JSONæ ¼å¼ãæ¤åæ°å¯ç©ºï¼ä¸ºç©ºè¡¨ç¤ºæ§è¡éæ¥è¡¨çæä»»å¡ï¼æWEBæ¥è¡¨å®¢æ·ç«¯éè¿URLè·åæ¥è¡¨æ¨¡æ¿ã |
| | | //dataï¼ |
| | | // æ¥è¡¨æ°æ®ææ¬ï¼æ¤åæ°å¯ç©ºï¼æ¥è¡¨æ éæä¾æ°æ®ï¼æWEBæ¥è¡¨å®¢æ·ç«¯éè¿URLè·åæ¥è¡¨æ°æ®ã |
| | | // |
| | | // æ¥è¡¨æ°æ®å¯¹åºç XML æ JSON ææ¬ï¼è¯·åè帮å©âWEBæ¥è¡¨(B/Sæ¥è¡¨)->WEBæ¥è¡¨æ°æ®âä¸ç说æã |
| | | function webapp_ws_run(variant_args, report, data) { |
| | | function run_one(args, reportText, dataText) { |
| | | var msg; |
| | | |
| | | if (webapp_ws_check()) { |
| | | if (typeof args === "string") { |
| | | args = { |
| | | type: args |
| | | }; |
| | | } |
| | | msg = JSON.stringify(args); |
| | | |
| | | if (reportText) { |
| | | if (reportText.substr(0, 4) === "_WR_") { |
| | | msg += reportText.length; |
| | | } |
| | | msg += reportText; |
| | | |
| | | if (dataText) { |
| | | msg += dataText; |
| | | } |
| | | } |
| | | |
| | | _grwebapp_websocket.send(msg); |
| | | } |
| | | } //end of run_one |
| | | |
| | | if (!webapp_ws_check(1)) { |
| | | //妿WebSocket没æè¿æ¥ï¼åé¦å
åå»ºå¹¶è¿æ¥WebSocketï¼å¹¶å¨onopenäºä»¶ä¸æ§è¡ç¸å
³çä»»å¡ |
| | | webapp_ws_create(function () { |
| | | webapp_ws_run(variant_args, report, data); |
| | | }); |
| | | return; |
| | | } |
| | | |
| | | if (Array.isArray(variant_args)) { |
| | | variant_args.forEach(function (args) { |
| | | run_one(args); |
| | | }) |
| | | } |
| | | else { |
| | | run_one(variant_args, report, data); |
| | | } |
| | | } |
| | | |
| | | //éè¿ ajax æ¹å¼è·åæ¥è¡¨æ¨¡æ¿ä¸æ¥è¡¨æ°æ®ï¼ç¶åéè¿ WebSocket åéç¸å
³æ°æ®ç»WEBæ¥è¡¨å®¢æ·ç«¯å¹¶çææ¥è¡¨ |
| | | //åæ°æ¢å¯ä»¥æ¯åä¸ªç»æä½å¯¹è±¡ï¼ä¹å¯ä»¥æ¯ç»æä½å¯¹è±¡æ°ç»ãå¦ææ¯æ°ç»ï¼è¡¨ç¤ºææ¹çæå¤ä¸ªæ¥è¡¨ã |
| | | //ç»æä½å¯¹è±¡çåä¸ªæ°æ®é¡¹è¯´æè¯·åè帮å©ä¸âWEBæ¥è¡¨(B/Sæ¥è¡¨)->WEBæ¥è¡¨å®¢æ·ç«¯->å¯å¨åæ°è¯´æâé¨åã |
| | | function webapp_ws_ajax_run(variant_args) { |
| | | function run_one(args) { |
| | | var report = args.report, |
| | | data = args.data, |
| | | report_method = args.report_method, |
| | | data_method = args.data_method, |
| | | dataUrlParams = args.dataUrlParams, |
| | | pack = {}; |
| | | |
| | | function run() { |
| | | //åªæå½reportä¸dataé½èµå¼ä¹åæè¿è¡ï¼å³åWEBæ¥è¡¨å®¢æ·ç«¯ç¨åºåéæ°æ® |
| | | if (pack.report && pack.data !== undefined) { |
| | | webapp_ws_run(args, pack.report, pack.data); |
| | | } |
| | | } |
| | | |
| | | //å 为argséè¦ä¼ éç»WEBAPPï¼reportä¸dataçurlç¸å
³çåæ°ä¸éè¦ä¼ éï¼æä»¥å°å
¶å 餿 |
| | | delete args.report; |
| | | delete args.data; |
| | | delete args.report_method; |
| | | delete args.data_method; |
| | | delete args.dataUrlParams; |
| | | |
| | | webapp_build_one(pack, report, report_method, data, data_method, run, dataUrlParams); |
| | | } //end of run_one |
| | | |
| | | if (!webapp_ws_check(1)) { |
| | | //妿WebSocket没æè¿æ¥ï¼åé¦å
åå»ºå¹¶è¿æ¥WebSocketï¼å¹¶å¨onopenäºä»¶ä¸æ§è¡ç¸å
³çä»»å¡ |
| | | webapp_ws_create(function () { |
| | | webapp_ws_ajax_run(variant_args); |
| | | }); |
| | | return; |
| | | } |
| | | |
| | | if (Array.isArray(variant_args)) { |
| | | variant_args.forEach(function (args) { |
| | | run_one(args); |
| | | }); |
| | | } |
| | | else { |
| | | run_one(variant_args); |
| | | } |
| | | } |
| | | |
| | | //éè¿ ajax æ¹å¼è·åå¤ä¸ªæ¥è¡¨ç模æ¿ä¸æ°æ®ï¼ç¶åç¨ WebSocket å°æ°æ®ä¸æ¬¡æ§åéç»WEBæ¥è¡¨å®¢æ·ç«¯ç¨åºã |
| | | //å®ç°å¤ä¸ªæ¥è¡¨åæ¶çæå¨ä¸ä¸ªä»»å¡ä¸(åºç¨Grid++Reportçç¬ç«åæ¥è¡¨åè½å®ç°)ï¼è¾¾å°å¤ä¸ªæ¥è¡¨åæ¶é¢è§ãæå°ä¸æ°æ®å¯¼åº |
| | | function webapp_ws_ajax_together(args, reports) { |
| | | var reportCount = reports.length, |
| | | reportPacks = [], |
| | | gettedCount = 0; //æç¤ºå·²ç»è·åå°æ°æ®çæ¥è¡¨ä¸ªæ° |
| | | |
| | | function ajaxRequestOne(arg, index) { |
| | | var report = arg.report, |
| | | data = arg.data, |
| | | report_method = arg.report_method, |
| | | data_method = arg.data_method, |
| | | dataUrlParams = arg.dataUrlParams, |
| | | pack = reportPacks[index]; |
| | | |
| | | function try_ws_send() { |
| | | var msg, |
| | | dataMsg = "", |
| | | lengths = []; |
| | | |
| | | if (pack.report && pack.data !== undefined) { |
| | | if (++gettedCount >= reportCount) { //åªæå½å
¨é¨æ¥è¡¨ç模æ¿ä¸æ°æ®é½å·²ç»è·åå°ä¹åï¼æä¼åWEBæ¥è¡¨å®¢æ·ç«¯åéæ°æ® |
| | | msg = JSON.stringify(args); |
| | | |
| | | reportPacks.forEach(function (item) { |
| | | var report = item.report, |
| | | data = item.data, |
| | | reportLen = report.length, |
| | | reportLenText = ""; |
| | | |
| | | if (report.substr(0, 4) === "_WR_") { |
| | | reportLenText += reportLen; |
| | | dataMsg += reportLenText; |
| | | reportLen += reportLenText.length; |
| | | } |
| | | dataMsg += report; |
| | | |
| | | if (data) { |
| | | dataMsg += data; |
| | | } |
| | | |
| | | lengths.push(reportLen + data.length); |
| | | }); |
| | | |
| | | msg += JSON.stringify(lengths); |
| | | msg += dataMsg; |
| | | |
| | | _grwebapp_websocket.send(msg); |
| | | } |
| | | } |
| | | } |
| | | |
| | | webapp_build_one(pack, report, report_method, data, data_method, try_ws_send, dataUrlParams); |
| | | } //end of ajaxRequestOne |
| | | |
| | | if (!webapp_ws_check(1)) { |
| | | //妿WebSocket没æè¿æ¥ï¼åé¦å
åå»ºå¹¶è¿æ¥WebSocketï¼å¹¶å¨onopenäºä»¶ä¸æ§è¡ç¸å
³çä»»å¡ |
| | | webapp_ws_create(function () { |
| | | webapp_ws_ajax_together(args, reports); |
| | | }); |
| | | return; |
| | | } |
| | | |
| | | reports.forEach(function (report, index) { |
| | | reportPacks.push({}); |
| | | ajaxRequestOne(report, index); |
| | | }); |
| | | } |
| | | |
| | | ///////////////////////////////////////////////////////////////////////////// |
| | | //éè¿WebSocketåWEBæ¥è¡¨å®¢æ·ç«¯åéæä¸¾åºå½åçµèçæææå°æºä¿¡æ¯çæä»¤ |
| | | //å¨ç½é¡µç webapp_onmessage 彿°ä¸æ¥æ¶WEBæ¥è¡¨å®¢æ·ç«¯è¿åçç»æï¼å
·ä½è¯·åèä¾åã |
| | | function webapp_ws_fun_Printers() { |
| | | webapp_ws_run({ |
| | | type: "fun", |
| | | fun: "Printers" |
| | | }); |
| | | } |
| | | |
| | | //éè¿WebSocketåWEBæ¥è¡¨å®¢æ·ç«¯åéæä¸¾åºå½åçµèçæå®æå°æºçå
¨é¨å¯ç¨çº¸å¼ çæä»¤ |
| | | //å¨ç½é¡µç webapp_onmessage 彿°ä¸æ¥æ¶WEBæ¥è¡¨å®¢æ·ç«¯è¿åçç»æï¼å
·ä½è¯·åèä¾å |
| | | function webapp_ws_fun_PrinterPapers(printer) { |
| | | webapp_ws_run({ |
| | | type: "fun", |
| | | fun: "PrinterPapers", |
| | | printer: printer |
| | | }); |
| | | } |
| | | |
| | | //éè¿WebSocketåWEBæ¥è¡¨å®¢æ·ç«¯åé忢å½åæ¥è¡¨é¢è§å¹¶å
³éé¢è§çªå£çæä»¤ |
| | | function webapp_ws_fun_StopPreview() { |
| | | webapp_ws_run({ |
| | | type: "fun", |
| | | fun: "StopPreview" |
| | | }); |
| | | } |
| | | |
| | | ///////////////////////////////////////////////////////////////////////////// |
| | | //éè¿WebSocketåWEBæ¥è¡¨å®¢æ·ç«¯åéæ¶æ¯è¿è¡èªå¨æ´æ°æ£æ¥å¤ç |
| | | function webapp_ws_autoupdate() { |
| | | webapp_ws_run({ |
| | | type: "update", |
| | | url: _grwebapp_url, |
| | | ver: _grwebapp_version |
| | | }); |
| | | } |
| | | |
| | | ///////////////////////////////////////////////////////////////////////////// |
| | | //为URL追å ä¸ä¸ªå为idçéæºæ°åæ°ï¼ç¨äºé²æ¢æµè§å¨ç¼åã |
| | | //æ¥è¡¨æ¨¡æ¿éæ°è®¾è®¡åï¼å 为æµè§å¨ç¼åè让æ¥è¡¨çæä¸è½åæ åºæ°ä¿®æ¹çè®¾è®¡ç»æï¼URLå追å ä¸ä¸ªéæºæ°åæ°å¯ä»¥é¿å
è¿æ ·çé®é¢ |
| | | //åæ°urlå¿
é¡»æ¯éæçURLï¼å
¶åæ¬èº«æ ä»»ä½åæ° |
| | | //å¦ææ¨¡æ¿å ä¹ä¸æä¹ä¿®æ¹ï¼å¯ä»¥å»æå¯¹æ¬å½æ°çè°ç¨ |
| | | function urlAddRandomNo(url) { |
| | | return url + "?id=" + Math.floor(Math.random() * 10000); |
| | | } |
| | | |
| | | //æ ¹æ®å½åç½é¡µURLè·åå°å½åWEBæå¡å¨çæ ¹URLï¼å¹¶è®°å½å¨ window.rootURL ä¸ |
| | | function gr_extractRootURL() { |
| | | var path = window.location.pathname, |
| | | index = path.lastIndexOf("/"); |
| | | |
| | | window.rootURL = window.location.protocol + "//" + window.location.host; |
| | | if (index >= 0) { |
| | | path = path.substr(0, index); |
| | | |
| | | //demmoçæ ¹ç®å½å¨å½å页é¢ç1级ç®å½ä¹ä¸ |
| | | index = path.lastIndexOf("/"); |
| | | if (index >= 0) { |
| | | path = path.substr(0, index); |
| | | } |
| | | |
| | | window.rootURL += path; |
| | | } |
| | | window.rootURL += "/"; |
| | | } |
| | | |
| | | //vueä¸ä½¿ç¨å°ä¸å注é弿¾ |
| | | //export { |
| | | // webapp_url_method_valid, |
| | | // webapp_urlprotocol_startup, |
| | | // webapp_ajax, |
| | | // webapp_ws_ajax_run, |
| | | // webapp_urlprotocol_run, |
| | | // urlAddRandomNo, |
| | | // webapp_onmessage, |
| | | // webapp_ws_fun_StopPreview, |
| | | // webapp_ws_fun_PrinterPapers, |
| | | // webapp_ws_fun_Printers, |
| | | // webapp_ws_ajax_together, |
| | | // webapp_ws_autoupdate, |
| | | // gr_extractRootURL |
| | | //} |