捷宇高拍仪-vue

捷宇高拍仪-vue

框架vue-springboot

先去找捷宇售后要到他们的对接资料,会有他们的插件,不同的设备型号,插件会不一样,捷宇只适合windows系。插件安装后,去注册表搜索454C18E2-8B7D-43C6-8C17-B1825B49D7DE要能搜索到才行

我没有调用IE浏览器
我是在报captrue.bStopPlay is not a function的错误之后才实行的下面的方法

vue代码

<template>
  <div>
    <div  style="width: 1800px;background-color: #006843" >
      <p>
        <OBJECT
          classid="clsid:454C18E2-8B7D-43C6-8C17-B1825B49D7DE"
          id="captrue"
        />
      </p>
      <p><img id="photo" src=""/></p>
      <p>
        <button @click="Start1_onclick">打开扫描仪</button>
        <button @click="cszp">拍照</button>
        <button @click="uploadImg">上传</button>
      </p>
    </div>
  </div>
</template>
<script>
export default {
  name: "gpy",
  data() {
    return {
      myFileName: '',
      files: [],
      currDir: '',
      fName: 0,
      webSocket: null,
      imageBase64: '',
    }
  },
  mounted() {
    this.Init();
    //拍照事件(不确定有没有用)
    var gpyscript = document.createElement('script');
    window.phoneListener = this;
    gpyscript.type = 'text/javascript';
    gpyscript.setAttribute('for','captrue');
    gpyscript.setAttribute('language','javascript');
    gpyscript.event = 'BWSaveComplete(imagepath)';
    gpyscript.innerHTML='phoneListener.BWSaveComplete(imagepath)';
    document.body.appendChild(gpyscript);

  },
  methods: {
    //判断是什么浏览器(可加可不加)
    myBrowser: function () {
      var userAgent = navigator.userAgent; //取得浏览器的userAgent字符串
      console.log(userAgent);
      var isOpera = userAgent.indexOf("Opera") > -1;
      if (isOpera) {
        return "Opera";
      } //判断是否Opera浏览器
      else if (userAgent.indexOf("Firefox") > -1) {
        return "FF";
      } //判断是否Firefox浏览器
      else if (userAgent.indexOf("Edge") > -1) {
        return "Edge";
      } //判断是否Safari浏览器
      else if (userAgent.indexOf("Chrome") > -1) {
        return "Chrome";
      } else if (userAgent.indexOf("Safari") > -1) {
        return "Safari";
      } else {
        return "IE";
      } //判断是否IE浏览器
    },

    Init() {
      if (this.myBrowser() != "IE") {
        var div = document.getElementById("captrue");
        div.style.display = "none";
        var div = document.getElementById("photo");
        div.style.display = "block";
		// ip不用变,端口是高拍仪控件的端口也不要变
        this.webSocket = new WebSocket("ws://127.0.0.1:1818");
        //这是正常vue的写法
        this.webSocket.onopen = this.webSocketOnOpen
        this.webSocket.onerror = this.webSocketOnError
        this.webSocket.onmessage = this.webSocketOnMessage
        this.webSocket.onclose = this.webSocketClose

        //下面是用function的方法
        /*this.webSocket.onerror = function (event) {
          alert("连接错误");
        };*/

        /*this.webSocket.onopen = function (event) {
          // alert("open"+event.data);
          // console.log(event);
        };*/
        /*this.webSocket.onclose = function (event) {
          alert("服务不存在或者被关闭");
          //onClose(event);
        };*/

        /*this.webSocket.onmessage = function (event) {
          if (event.data.indexOf("BeginbStartPlay") >= 0) {
          }
          if (event.data.indexOf("BeginbSaveJPG") >= 0) {
            alert(
              event.data
                .replace("BeginbSaveJPG", "")
                .replace("EndbSaveJPG", "")
                .replace("true", "拍照成功")
                .replace("false", "拍照失败")
            );
          }
          if (event.data.indexOf("BeginBase64Encode") >= 0) {
            console.log(event.data
              .replace("BeginBase64Encode", "")
              .replace("EndBase64Encode", ""))
            let data = event.data
              .replace("BeginBase64Encode", "")
              .replace("EndBase64Encode", "")
            this.copyBase64(data)
            // alert(
            //   event.data
            //     .replace("BeginBase64Encode", "")
            //     .replace("EndBase64Encode", "")
            // );
          }
          if (event.data.indexOf("BeginbUpLoadImage") >= 0) {
            alert(
              event.data
                .replace("BeginbUpLoadImage", "")
                .replace("EndbUpLoadImage", "")
            );
          }
          if (event.data.indexOf("BeginbStopPlay") >= 0) {
            document.getElementById("photo").src = "";
          }
          else{
            document.getElementById("photo").src =
              "data:image/jpeg;base64," + event.data;
          }
        };*/
      } else {
        var div = document.getElementById("captrue");
        div.style.display = "block";
        var div = document.getElementById("photo");
        div.style.display = "none";
      }
    },


    webSocketOnError(){
      alert("连接错误");
    },

    webSocketOnOpen(){
      // alert("open"+event.data);
      // console.log(event);
      this.webSocket.send('OpenBarScanner')
    },
    webSocketClose(){
      // alert("服务不存在或者被关闭");
    },
    webSocketOnMessage(event){
      //渲染页面
      document.getElementById("photo").src =
        "data:image/jpeg;base64," + event.data;
      //看webSocket接收的什么数据
      if (event.data.indexOf("BeginbSaveJPG") >= 0) {
        // alert(
        //   event.data
        //     .replace("BeginbSaveJPG", "")
        //     .replace("EndbSaveJPG", "")
        //     .replace("true", "拍照成功")
        //     .replace("false", "拍照失败")
        // );
        if (event.data.replace("BeginbSaveJPG", "").replace("EndbSaveJPG", "") == 'true'){
          this.$message({
            showClose: true,
            message: '拍照成功',
            type: 'success'
          });
        }else {
          this.$message({
            showClose: true,
            message: '拍照失败',
            type: 'error'
          });
        }
      }
      if (event.data.indexOf("BeginBase64Encode") >= 0) {
        let data = event.data
          .replace("BeginBase64Encode", "")
          .replace("EndBase64Encode", "")
        this.copyBase64(data)
      }
    },
    /** 打开扫描仪 --> 开始 */
    Start1_onclick(){
      // this.webSocket = new WebSocket("ws://127.0.0.1:1818");
      // this.webSocket.onopen = this.webSocketOnOpen
      // this.webSocket.onerror = this.webSocketOnError
      // this.webSocket.onmessage = this.webSocketOnMessage
      // this.webSocket.onclose = this.webSocketClose

      //停止
      this.webSocket.send("bStopPlay()");
      // 开始
      this.webSocket.send("bStartPlay()");
      // 放大摄像头
      this.webSocket.send("vZoomOut()");
      this.webSocket.send("vZoomOut()");
      this.webSocket.send("vZoomOut()");
      this.webSocket.send("vZoomOut()");
      this.webSocket.send("vZoomOut()");
      this.webSocket.send("vZoomOut()");
      // 设置分辨率
      this.webSocket.send("vSetResolution(7)");
      this.webSocket.send("vSetResolutionEx(9)");
    },
    /** 开始拍照 --> 拍照(原单张拍照) */
    cszp(){
      this.myFileName = ""
      var d = new Date().getTime();
      this.myFileName = d
      // 保存jpg图片到本地
      var newData = "bSaveJPG(d:\\gpy\\images\\," + d + ")"
      this.webSocket.send(newData)
      console.log(newData,123)
    },
    uploadImg(val){
      // 解析本地图片成base64
      var newData = "Base64Encode(d:\\gpy\\images\\" + this.myFileName + ".jpg)"
      this.webSocket.send(newData);
      // tellImageGpy({
      //   fileName: this.imageBase64
      // }).then(res => {
      //   console.log(res,12)
      // })
      // this.webSocket.close()
    },
    // 通过获取到的base64传给后端代码
    copyBase64: function(val){
      console.log(val,112233)
      tellImageGpy({
        fileName: val
      }).then(res => {
        console.log(res,12)
      })
      return;
    }
  }
}
</script>

我后端代码调用的是百度识别图片的接口,所有我前段先把图片文件保存到本地路径,在使用高拍仪调用本地图片转Base64的接口,把图片处理成Base64的形式传给后端来识别。

控件及接口文档
链接: https://pan.baidu.com/s/1nYehoY1SPunMzGUMdf2bfg
提取码: Q1w2

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值