<template>
|
<web-view class="myView" src="http://192.168.1.145:86/UserLogin.aspx" @message="onMessage" id="webviewRef" ref="webviewRef" name="webviewRef"
|
></web-view>
|
<!-- "http://192.168.1.145:86/UserLogin.aspx" -->
|
</template>
|
<script>
|
import {queue} from '@/utils/printSupport'
|
export default {
|
data() {
|
return {
|
messageTest:"1",
|
ip: "111",
|
port: "9100",
|
info: ['']
|
}
|
},
|
onLoad() {
|
this.ddd=";s";
|
// #ifdef H5
|
// uniapp webview h5 通信 window.postMessage 方式
|
// https://blog.csdn.net/qq_42313445/article/details/127068570
|
window.addEventListener("message", (event) => {
|
// 全量打印
|
// console.log(event)
|
// 只看关键消息
|
// console.log(event.data)
|
// hybrid页面通过uni.webView.postMessage传递的data结构
|
// let event_data = event.data.data.arg;
|
// this.ddd=event_data
|
// console.log(event_data)
|
}, false)
|
// #endif
|
},
|
methods: {
|
|
onMessage(e) {
|
console.log('收到消息:', e.detail.data);
|
this.messageTest=e.detail.data;
|
var _obj=JSON.parse(this.messageTest);
|
///
|
console.log(_obj.Ip);
|
console.log(_obj.Port);
|
console.log(_obj.Detail);
|
console.log(_obj.Type);
|
|
|
this.ip = _obj.Ip;
|
this.port = _obj.Port;
|
this.info = _obj.Detail;
|
/////////////////////////访问服务器
|
if(_obj.Type === "Bar")
|
{
|
this.printHandle();
|
}
|
else if(_obj.Type === "Scan")
|
{
|
//读取扫码beg 2025-7-28
|
console.log(_obj.txtName);
|
var currentWebview = this.$refs.webviewRef;
|
let _funName='msgFromUniapp';
|
let _fundata = { msg:'',txtName:''};
|
currentWebview = this.$scope.$getAppWebview().children()[0];
|
uni.scanCode({
|
onlyFromCamera: true, //为true只允许相机扫码,不加允许相册扫码
|
success: function(res) {
|
console.log(JSON.stringify(res));
|
_fundata.msg=res.result;
|
_fundata.txtName=_obj.txtName;
|
currentWebview.evalJS(`${_funName}(${JSON.stringify(_fundata)})`);
|
uni.showToast({
|
title: '扫码成功'
|
});
|
},
|
fail: function(err) {
|
console.log('扫码失败', err)
|
}
|
});
|
//读取扫码end 2025-7-28
|
}
|
|
|
|
},
|
callH5Method(){
|
uni.postMessage({
|
data: {
|
action: 'someAction',
|
content: 'Hello from uniapp'
|
}
|
}, (response) => {
|
console.log('收到H5页面的响应:', response);
|
});
|
},
|
async printHandle() {
|
const arr = this.info;
|
uni.showLoading({
|
title: '发送中...',
|
mask: true
|
});
|
try {
|
console
|
// 发送数组处理
|
await queue(arr,this.ip,this.port);
|
} catch (error) {
|
// console.error('Error during queue processing:', error);
|
uni.showToast({
|
title: error,
|
icon: "error",
|
duration: 2000
|
})
|
} finally {
|
uni.hideLoading();
|
this.printTxt = "已发送"
|
uni.showToast({
|
title: "发送完成",
|
icon: "success",
|
duration: 2000
|
})
|
}
|
},
|
}
|
}
|
</script>
|
<style>
|
</style>
|