zoukankan      html  css  js  c++  java
  • uniapp H5扫码解决方案

    JS通过webView调用本地相机扫码二维码,然后webView把二维码数据传给JS

    网上找了一堆资料,都是JS传值给webView的,这里自己看了下代码,通过两个步骤实现此功能
    1,通过JS调用webView函数打开本地相机
    JS代码:

    <body class="body_water">
       <button οnclick="subMit();">安卓扫码测试</button>
        <script type="text/javascript" src="./js/jtys/jquery-1.7.2.min.js"></script>
        <script type="text/javascript" src="./js/layer.js"></script>
        <script>
            function subMit() {
                alert("事件触发了!");
                window.FinishWeb.openCamera();
        
            }
           function getQRCode(code){
            alert("进入回调了");
          var cancel=code;
              alert(cancel);
          }
        </script>
    </body>

    webView代码:

    webSettings.setJavaScriptEnabled(true);
    webSettings.setDefaultTextEncodingName("UTF-8");
    webView.addJavascriptInterface(new FinishWeb(), "FinishWeb");
    public class FinishWeb {
        @JavascriptInterface
        public void close() {
            WebActivity.this.finish();
        }
    
        @JavascriptInterface
        public void openCamera() {
            Toast.makeText(WebActivity.this, "开始识别", Toast.LENGTH_SHORT).show();
            //本地扫码方法
            scan();
        }
    }

    2,通过webView调用JS的方法,把值传给JS

    webView代码:

    String code = "123456";
    String method =  "getQRCode('" + code + "')";//拼接参数,就可以把数据传递给js
    webView.evaluateJavascript(method, new ValueCallback<String>() {
        @Override
        public void onReceiveValue(String value) {
            Log.i("qcl0228", "js返回的数据" + value);
        }
    });

    一个简单的JS与webView交互传值就实现了

    https://blog.csdn.net/m0_37596450/article/details/105637686

  • 相关阅读:
    web框架开发-Django模型层(1)之ORM简介和单表操作
    web框架开发-模板层
    生产者-消费者模式
    不变模式
    SynchronousQueue
    ThreadLocal
    锁的优化以及Java虚拟机对锁优化所做的努力
    随机数据结构:跳表(SkipList)
    数据共享通道:BlockingQueue
    CopyOnWriteArrayList
  • 原文地址:https://www.cnblogs.com/guwufeiyang/p/15439073.html
Copyright © 2011-2022 走看看