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

 

posted @   鼓舞飞扬  阅读(1932)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
点击右上角即可分享
微信分享提示