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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM