经过H5扫码之后现在又要使用H5Plus的扫码,害。。。
H5Plus的扫码就是自己写个扫码页面,通过nativeObj,去集成一些功能,达到自定义扫码页面的目的,
但是扫码控件依旧没办法更改,例如扫码框的宽高什么的(大家如果有什么想法欢迎一起交流)
Api传送门
附上我写的
(小坑:返回会有路由问题,所以我是将他封为插件引入,引入的页面作为载体)
<template>
<div></div>
</template>
<script >
import { ref, onMounted, getCurrentInstance } from "vue";
import { useRoute, useRouter } from "vue-router";
export default {
setup() {
var barcode = null;
var countDom = null;
var countNum = 0;
var backVew = null;
var toast = null;
var scanBarVew = null;
var flash = false;
let route = useRoute();
let router = useRouter();
let routFrom = ref(route.query.status);
const { proxy } = getCurrentInstance();
onMounted(() => {
countNum = 0;
getStorageCheckin(true);
// #ifdef APP-PLUS
plus.navigator.setFullscreen(true); //全屏
createBarcode(); //创建二维码窗口
createView(); //创建操作按钮及tips界面
// #endif
});
// 创建二维码窗口
const createBarcode = () => {
barcode = plus.barcode.create(
"barcode",
[plus.barcode.EAN13, plus.barcode.CODE128, plus.barcode.QR],
{
top: "0",
left: "0",
width: "100%",
height: "100%",
position: "static",
frameColor: "#50ec7b",
scanbarColor: "#50ec7b",
}
);
// 扫码成功回调
barcode.onmarked = (type, result) => {
let text = "未知: ";
switch (type) {
case plus.barcode.QR:
text = "QR: ";
break;
case plus.barcode.EAN13:
text = "EAN13: ";
break;
case plus.barcode.EAN8:
text = "EAN8: ";
break;
case plus.barcode.CODE39:
text = "CODE39: ";
break;
}
setTimeout(function () {
// countNum++;
// console.log(countNum);
// countDom && countDom.drawText(countNum, {}, {}, "font");
barcode.start();
}, 3000);
console.log(routFrom.value);