vue里面写原生JS函数

    最近在做安卓混合开发时,遇到几个坑,在vue写的界面里面调用原生js去调用安卓插件agentweb的安卓条码扫描功能,

最后是agentweb调用web的原生JS出问题,问题1:在vue界面里面放原生的function在哪里?经过多轮研究,问题1终于解决了,但又遇到个问题2:原生函数把值给了input控件,但vue取不到input的值。查查资料又解决了。

解决问题一:原生JS函数放在哪里?要放在导出html模板文件里面,而不是放在写的vue界面里面

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta content="width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=no" name="viewport" />
    <link rel="icon" href="<%= BASE_URL %>favicon.ico">
    <title>SCAN_Demo</title>
    <script type="text/javascript">
      function SCANRsult(key){
          document.getElementById("SCANText").value = key;
          document.getElementById("bt_SCAN").click();
      }
    </script>
  </head>
  <body>
    <div id="app"></div>   
  </body>
</html>

解决问题二:原生的JS把值赋给input,vue取不到绑定的input值。

document.getElementById("DemoInput").dispatchEvent(new Event('input'));

解决问题二:返回的条码怎么知道放到哪个Input里面。

<template>
        <div style="display:none;">
            <input id="SCAN" v-model="dongtai" data-msg="gem01"  ref="dataMsg" @keyup.enter="handleinput" />  
            <button @click="bt_click()" id="bt_SCAN">Add 1</button>   
         </div>                 
</template>
<script> 
    //调用按钮
    scan_click(){
            document.getElementById("SCAN").dispatchEvent(new Event('input'));
            this.dt_name=this.$refs.dataMsg.dataset.msg;
            this[this.dt_name]=this.dongtai;
        },
    bt_click(){
            document.getElementById("SCAN").dispatchEvent(new Event('input'));
            this.dt_name=this.$refs.dataMsg.dataset.msg;
            this[this.dt_name]=this.dongtai;
        },
</script>
发布了76 篇原创文章 · 获赞 17 · 访问量 8万+

猜你喜欢

转载自blog.csdn.net/weijia3624/article/details/103870032