scanner: Fix worker creation order against camera listener setup

This commit is contained in:
Fam Zheng 2025-08-14 22:42:51 +01:00
parent 861073c762
commit 935577c339
2 changed files with 11 additions and 6 deletions

View File

@ -19,9 +19,14 @@ App({
this.get_real_ip();
// On iOS, the js runtime is reported to be too slow for wasm, use experimental JIT worker.
// https://developers.weixin.qq.com/community/develop/doc/000cac2319cbd8ecdc7f062eb53400
this.globalData.worker = wx.createWorker('worker/index.js', {
useExperimentalWorker: true,
});
this.globalData.get_worker = () => {
if (!this.globalData.worker) {
this.globalData.worker = wx.createWorker('worker/index.js', {
useExperimentalWorker: true,
});
}
return this.globalData.worker;
}
},
onShow(options) {
if (options.referrerInfo && options.referrerInfo.extraData && options.referrerInfo.extraData.caller_info) {

View File

@ -109,7 +109,7 @@ Page({
this.log("phone model: " + phone_model);
getApp().globalData.phone_model = phone_model;
this.log("window width", si.windowWidth, "height", si.windowHeight);
const use_worker = false; //phone_model.toLowerCase().includes("iphone");
const use_worker = phone_model.toLowerCase().includes("iphone");
this.setData({
enable_debug,
phone_model,
@ -118,7 +118,7 @@ Page({
use_worker,
});
if (use_worker) {
this.worker = getApp().globalData.worker;
this.worker = getApp().globalData.get_worker();
this.worker.onMessage((msg) => {
if (msg.type == "result") {
var res = msg.res;
@ -366,7 +366,7 @@ Page({
const listener = ctx.onCameraFrame((res) => { this.handle_frame(res) });
this.listener = listener;
}
const worker = getApp().globalData.worker;
const worker = getApp().globalData.get_worker();
this.listener.start({
worker,
});