cashier-paid/unpackage/dist/dev/app-plus/app-service.js

420 lines
15 KiB
JavaScript
Raw Normal View History

2024-05-09 09:48:05 +08:00
if (typeof Promise !== "undefined" && !Promise.prototype.finally) {
Promise.prototype.finally = function(callback) {
const promise = this.constructor;
return this.then(
(value) => promise.resolve(callback()).then(() => value),
(reason) => promise.resolve(callback()).then(() => {
throw reason;
})
);
};
}
;
if (typeof uni !== "undefined" && uni && uni.requireGlobal) {
const global = uni.requireGlobal();
ArrayBuffer = global.ArrayBuffer;
Int8Array = global.Int8Array;
Uint8Array = global.Uint8Array;
Uint8ClampedArray = global.Uint8ClampedArray;
Int16Array = global.Int16Array;
Uint16Array = global.Uint16Array;
Int32Array = global.Int32Array;
Uint32Array = global.Uint32Array;
Float32Array = global.Float32Array;
Float64Array = global.Float64Array;
BigInt64Array = global.BigInt64Array;
BigUint64Array = global.BigUint64Array;
}
;
if (uni.restoreGlobal) {
uni.restoreGlobal(Vue, weex, plus, setTimeout, clearTimeout, setInterval, clearInterval);
}
(function(vue) {
"use strict";
2024-05-15 18:34:11 +08:00
const ON_SHOW = "onShow";
const ON_HIDE = "onHide";
const ON_LAUNCH = "onLaunch";
const ON_LOAD = "onLoad";
const ON_READY = "onReady";
function formatAppLog(type, filename, ...args) {
if (uni.__log__) {
uni.__log__(type, filename, ...args);
} else {
console[type].apply(console, [...args, filename]);
}
}
const createHook = (lifecycle) => (hook, target = vue.getCurrentInstance()) => {
!vue.isInSSRComponentSetup && vue.injectHook(lifecycle, hook, target);
};
const onShow = /* @__PURE__ */ createHook(ON_SHOW);
const onHide = /* @__PURE__ */ createHook(ON_HIDE);
const onLaunch = /* @__PURE__ */ createHook(ON_LAUNCH);
const onLoad = /* @__PURE__ */ createHook(ON_LOAD);
const onReady = /* @__PURE__ */ createHook(ON_READY);
var BleDevice;
var device = null, BAdapter = null, BluetoothAdapter = null, uuid = null, UUID = null, bluetoothSocket = null;
function getLocationManager(callback) {
plus.android.requestPermissions(
["android.permission.ACCESS_FINE_LOCATION"],
function(resultObj) {
var result = 0;
for (var i = 0; i < resultObj.granted.length; i++) {
resultObj.granted[i];
result = 1;
}
for (var i = 0; i < resultObj.deniedPresent.length; i++) {
resultObj.deniedPresent[i];
result = 0;
}
for (var i = 0; i < resultObj.deniedAlways.length; i++) {
resultObj.deniedAlways[i];
result = -1;
}
if (result !== 1) {
const Intent = plus.android.importClass("android.content.Intent");
const Settings = plus.android.importClass("android.provider.Settings");
const Uri = plus.android.importClass("android.net.Uri");
var mainActivity = plus.android.runtimeMainActivity();
const intent = new Intent();
intent.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
var uri = Uri.fromParts("package", mainActivity.getPackageName(), null);
intent.setData(uri);
mainActivity.startActivity(intent);
} else {
var context = plus.android.importClass("android.content.Context");
var locationManager = plus.android.importClass("android.location.LocationManager");
var main = plus.android.runtimeMainActivity();
var mainSvr = main.getSystemService(context.LOCATION_SERVICE);
var gps = mainSvr.isProviderEnabled(locationManager.GPS_PROVIDER);
var agps = mainSvr.isProviderEnabled(locationManager.NETWORK_PROVIDER);
if (gps || agps) {
startBluetoothDiscovery(callback);
} else {
uni.showModal({
title: "提示",
content: "请授权位置获取附近的蓝牙设备",
showCancel: false,
success() {
if (!mainSvr.isProviderEnabled(locationManager.GPS_PROVIDER)) {
var Intent = plus.android.importClass("android.content.Intent");
var Settings = plus.android.importClass("android.provider.Settings");
var intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
main.startActivity(intent);
} else {
startBluetoothDiscovery(callback);
formatAppLog("log", "at js_sdk/wangqingzhou311-android-blueTooth/searchDevices.js:66", "定位已开启");
}
}
});
}
}
}
);
}
function startBluetoothDiscovery(callback) {
plus.bluetooth.openBluetoothAdapter({
success: function(e) {
plus.bluetooth.startBluetoothDevicesDiscovery({
success: function(e2) {
callback();
},
fail: function(e2) {
formatAppLog("log", "at js_sdk/wangqingzhou311-android-blueTooth/searchDevices.js:88", "失败2");
}
});
},
fail: function(e) {
formatAppLog("log", "at js_sdk/wangqingzhou311-android-blueTooth/searchDevices.js:92", "open failed: " + JSON.stringify(e));
}
});
}
function searchDevices(address = "", vlist1 = [], vlist2 = []) {
var main = plus.android.runtimeMainActivity();
var IntentFilter = plus.android.importClass("android.content.IntentFilter");
var BluetoothAdapter2 = plus.android.importClass("android.bluetooth.BluetoothAdapter");
var BluetoothDevice = plus.android.importClass("android.bluetooth.BluetoothDevice");
BAdapter = BluetoothAdapter2.getDefaultAdapter();
if (!BAdapter.isEnabled()) {
uni.showToast({
title: "请开启蓝牙",
duration: 2e3,
icon: "error"
});
return;
}
formatAppLog("log", "at js_sdk/wangqingzhou311-android-blueTooth/searchDevices.js:113", "开始搜索设备");
var filter = new IntentFilter();
var bdevice = new BluetoothDevice();
var on = null;
var un = null;
let titleStr = "正在搜索请稍候";
if (address) {
titleStr = "正在连接蓝牙";
}
uni.showLoading({
title: titleStr
});
BAdapter.startDiscovery();
var receiver = plus.android.implements("io.dcloud.android.content.BroadcastReceiver", {
onReceive: function(context, intent) {
plus.android.importClass(context);
plus.android.importClass(intent);
if (intent.getAction() === "android.bluetooth.adapter.action.DISCOVERY_FINISHED") {
main.unregisterReceiver(receiver);
uni.hideLoading();
} else {
BleDevice = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
const name = BleDevice.getName();
if (BleDevice.getBondState() === bdevice.BOND_NONE) {
if (address === BleDevice.getAddress()) {
if (BleDevice.createBond()) {
vlist2.push({ name, address: BleDevice.getAddress() });
BAdapter.cancelDiscovery();
uni.hideLoading();
}
} else {
if (name !== null && name !== on) {
on = name || "未知设备";
vlist1.push({ name: on, address: BleDevice.getAddress() });
uni.hideLoading();
if (on === "T58") {
uni.$emit("connect", "T58");
}
}
}
} else {
if (name !== un) {
un = name;
vlist1.push({ name: un, address: BleDevice.getAddress() });
vlist2.push({ name: un, address: BleDevice.getAddress() });
formatAppLog("log", "at js_sdk/wangqingzhou311-android-blueTooth/searchDevices.js:164", "=========", vlist1);
uni.hideLoading();
if (address) {
BAdapter.cancelDiscovery();
}
if (un === "T58") {
uni.$emit("connect", "T58");
}
}
}
}
}
});
filter.addAction(bdevice.ACTION_FOUND);
filter.addAction(BAdapter.ACTION_DISCOVERY_STARTED);
filter.addAction(BAdapter.ACTION_DISCOVERY_FINISHED);
filter.addAction(BAdapter.ACTION_STATE_CHANGED);
filter.addAction(BluetoothAdapter2.ACTION_ACL_DISCONNECTED);
main.registerReceiver(receiver, filter);
}
function print(mac_address, data, callback) {
if (!mac_address) {
uni.showToast({
title: "请选择蓝牙设备",
duration: 2e3,
icon: "error"
});
return;
}
plus.android.runtimeMainActivity();
BluetoothAdapter = plus.android.importClass("android.bluetooth.BluetoothAdapter");
UUID = plus.android.importClass("java.util.UUID");
uuid = UUID.fromString("00001101-0000-1000-8000-00805F9B34FB");
BAdapter = BluetoothAdapter.getDefaultAdapter();
device = BAdapter.getRemoteDevice(mac_address);
plus.android.importClass(device);
bluetoothSocket = device.createInsecureRfcommSocketToServiceRecord(uuid);
plus.android.importClass(bluetoothSocket);
if (!bluetoothSocket.isConnected()) {
uni.showToast({
title: "正在打印小票, 请耐心等待",
duration: 2e3,
icon: "none"
});
bluetoothSocket.connect();
}
if (bluetoothSocket.isConnected()) {
const outputStream = bluetoothSocket.getOutputStream();
plus.android.importClass(outputStream);
data.forEach((item) => {
const bytes = plus.android.invoke(item, "getBytes", "gbk");
outputStream.write(bytes);
});
setTimeout(function() {
outputStream.flush();
device = null;
bluetoothSocket.close();
callback();
}, 500);
} else
uni.showModal({
content: "连接打印机失败,是否重试",
success: (res) => {
if (res.confirm) {
print(mac_address, data, callback);
}
}
});
}
2024-05-09 09:48:05 +08:00
const _export_sfc = (sfc, props) => {
const target = sfc.__vccOpts || sfc;
for (const [key, val] of props) {
target[key] = val;
}
return target;
};
const _sfc_main$1 = {
2024-05-15 18:34:11 +08:00
__name: "index",
setup(__props) {
const vw = vue.ref(null);
onLoad(() => {
plus.navigator.setFullscreen(true);
getLocationManager(() => {
});
});
onReady(() => {
{
vue.nextTick(() => {
setTimeout(() => {
const pages = getCurrentPages();
vw.value = pages[pages.length - 1].$getAppWebview().children()[0];
}, 3e3);
});
}
});
const state = vue.reactive({
current: "esc",
deviceData: [],
data: [
{ id: "12345", width: 100, height: 100, title1: "title_1", title2: "title_2", title3: "title_3" }
]
// deviceId: '86:67:7A:2A:0B:08'
});
const onPrintClick = (str) => {
const stringData = [];
if (str)
stringData.push(str);
else
return uni.showToast({
title: "不可打印空内容",
icon: "exception"
});
formatAppLog("log", "at pages/index/index.vue:63", "打印内容", stringData);
let deviceId = uni.getStorageSync("deviceId");
if (!deviceId) {
let obj = state.deviceData.find((item) => item.name == "T58");
if (!obj)
return uni.showToast({
title: "蓝牙未连接到T58打印机, 请检查是否已配对T58打印机",
icon: "exception"
});
else {
deviceId = obj.address;
}
}
formatAppLog("log", "at pages/index/index.vue:75", "打印机地址=>", deviceId);
print(deviceId, stringData, () => {
uni.showToast({
title: "打印成功",
duration: 2e3
});
uni.setStorageSync("deviceId", deviceId);
});
};
let t = 1;
const onmessage = (e) => {
var _a, _b, _c, _d, _e, _f, _g, _h;
formatAppLog("log", "at pages/index/index.vue:93", "收到消息", e);
if (((_b = (_a = e.detail) == null ? void 0 : _a.data[0]) == null ? void 0 : _b.type) == "print") {
if ((_d = (_c = e.detail) == null ? void 0 : _c.data[0]) == null ? void 0 : _d.content) {
onPrintClick((_f = (_e = e.detail) == null ? void 0 : _e.data[0]) == null ? void 0 : _f.content);
}
} else if (((_h = (_g = e.detail) == null ? void 0 : _g.data[0]) == null ? void 0 : _h.type) == "connect") {
searchDevices("", state.deviceData);
uni.$off("connect");
uni.$once("connect", (e2) => {
uni.hideLoading();
let obj = {
type: "connect",
data: "打印机已连接"
};
formatAppLog("log", "at pages/index/index.vue:108", "连接成功", t++);
vw.value.evalJS(`receiveData('${JSON.stringify(obj)}')`);
});
}
};
return (_ctx, _cache) => {
return vue.openBlock(), vue.createElementBlock(
"web-view",
{
src: "http://192.168.1.55:5178/",
onMessage: onmessage
},
null,
32
/* NEED_HYDRATION */
);
2024-05-09 09:48:05 +08:00
};
2024-05-15 18:34:11 +08:00
}
2024-05-09 09:48:05 +08:00
};
2024-05-15 18:34:11 +08:00
const PagesIndexIndex = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__file", "D:/里海数字乡村/cashier-paid/pages/index/index.vue"]]);
2024-05-09 09:48:05 +08:00
__definePage("pages/index/index", PagesIndexIndex);
const _sfc_main = {
2024-05-15 18:34:11 +08:00
__name: "App",
setup(__props) {
const isHaveNetwork = () => {
uni.getNetworkType({
success: (res) => {
if (res.networkType == "none") {
uni.showModal({
title: "网络不给力~",
content: "是否重新连接",
showCancel: true,
confirmText: "是",
cancelText: "不了",
success: (res2) => {
if (res2.confirm) {
setTimeout(() => {
isHaveNetwork();
}, 200);
}
}
});
}
},
fail: (err) => formatAppLog("error", "at App.vue:23", "调用失败"),
complete: () => {
}
});
};
onLaunch(() => {
formatAppLog("log", "at App.vue:28", "App Launch");
});
onShow(() => {
formatAppLog("log", "at App.vue:31", "App Show");
isHaveNetwork();
});
onHide(() => {
formatAppLog("log", "at App.vue:35", "App Hide");
});
return () => {
};
2024-05-09 09:48:05 +08:00
}
};
const App = /* @__PURE__ */ _export_sfc(_sfc_main, [["__file", "D:/里海数字乡村/cashier-paid/App.vue"]]);
function createApp() {
const app = vue.createVueApp(App);
return {
app
};
}
const { app: __app__, Vuex: __Vuex__, Pinia: __Pinia__ } = createApp();
uni.Vuex = __Vuex__;
uni.Pinia = __Pinia__;
__app__.provide("__globalStyles", __uniConfig.styles);
__app__._component.mpType = "app";
__app__._component.render = () => {
};
__app__.mount("#app");
})(Vue);