南骏 池
2025-05-29 1733e439882975f8ba98b3168c4809e69f93b79a
1.扫描测试
已添加3个文件
127 ■■■■■ 文件已修改
H5/Js/ScanTest.js 77 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
H5/ScanTest.aspx 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
H5/ScanTest.aspx.cs 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
H5/Js/ScanTest.js
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,77 @@
var vm = new Vue({
    el: '#app',
    data: function () {
        return {
            isLoading: false,
            textInput: '',
            scanWorkstation: '',
            html5QrCode: null,
            pendingCallbacks: {}  // å­˜å‚¨å›žè°ƒå‡½æ•°
        }
    },
    mounted() {
        // åˆå§‹åŒ–消息监听
        window.addEventListener('message', this.handleH5Response);
    },
    beforeDestroy() {
        // æ¸…理事件监听
        window.removeEventListener('message', this.handleH5Response);
    },
    methods: {
        // å¤„理H5的响应
        handleH5Response(event) {
            try {
                const data = JSON.parse(event.data);
                if (data.RequestId && typeof data.returnValue !== 'undefined') {
                    const callback = this.pendingCallbacks[data.RequestId];
                    if (callback) {
                        callback(data.returnValue);
                        delete this.pendingCallbacks[data.RequestId];
                    }
                }
            } catch (e) {
                console.error('解析响应失败:', e);
            }
        },
        // å¯åŠ¨æ‰«ææµ‹è¯•
        startScanTest() {
            const requestId = Date.now().toString(); // ç”Ÿæˆå”¯ä¸€è¯·æ±‚ID
            const sendData = {
                Type: 'Scan',
                Barcode: 'TM250304-000104-2',
                Detail: 'detail info',
                Ip: '192.168.38.135',
                Port: '9100',
                RequestId: requestId // æ·»åŠ è¯·æ±‚æ ‡è¯†
            };
            // åˆ›å»ºPromise等待响应
            new Promise((resolve) => {
                this.pendingCallbacks[requestId] = resolve;
                // å‘送消息
                var result = uni.webView.postMessage({
                    data: JSON.stringify(sendData)
                });
                alert(result);
                //// è®¾ç½®è¶…时处理
                //setTimeout(() => {
                //    if (this.pendingCallbacks[requestId]) {
                //        delete this.pendingCallbacks[requestId];
                //        console.error('请求超时');
                //        resolve(-1); // è¿”回超时状态
                //    }
                //}, 5000); // 5秒超时
            }).then(result => {
                console.log('操作结果:', result);
                // è¿™é‡Œå¤„理返回结果
                if (result === 0) {
                    alert('操作成功!');
                } else {
                    alert('操作失败,错误码: ' + result);
                }
            });
        }
    }
});
H5/ScanTest.aspx
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,36 @@
<%@ Page Title="" Language="C#" MasterPageFile="~/Mst.master" AutoEventWireup="true" CodeFile="ScanTest.aspx.cs" Inherits="H5_Config" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="Server">
    <style>
    .bg-info {
        background-color:#fff;
    }
</style>
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder2" runat="Server">
    <br />
    <br />
    <br />
    <br />
        <van-nav-bar
  title="测试扫描"
  left-text="返回"
  left-arrow
  @click-left="GoBack()"
></van-nav-bar>
     <div class="padding">
        <van-button plain type="warning" @click="startScanTest">测试扫描</van-button>
        <van-cell-group>
              <van-field  v-model="textInput" placeholder="请扫描这里"  v-focus.noKeyboard ></van-field>
       </van-cell-group>
    </div>
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="ContentPlaceHolder3" runat="Server">
   <%--<comback ></comback>--%>
</asp:Content>
<asp:Content ID="Content4" ContentPlaceHolderID="ContentPlaceHolder4" runat="Server">
    <script src="Js/jquery-2.1.4.min.js"></script>
    <script src="Js/ScanTest.js?<%=11 %>"></script>
</asp:Content>
H5/ScanTest.aspx.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,14 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class H5_Config : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
    }
}