更新记录

1.0.7(2024-11-04) 下载此版本

修复部分情况下无法重复触发postMesssage方法bug

1.0.6(2024-04-16) 下载此版本

优化arrayBuffer传值

1.0.5(2024-04-11) 下载此版本

importScripts导入本地文件只在真机运行下有效

查看更多

平台兼容性

Vue2 Vue3
App 快应用 微信小程序 支付宝小程序 百度小程序 字节小程序 QQ小程序
HBuilderX 3.7.11 app-vue app-nvue × × × × × ×
钉钉小程序 快手小程序 飞书小程序 京东小程序
× × × ×
H5-Safari Android Browser 微信浏览器(Android) QQ浏览器(Android) Chrome IE Edge Firefox PC-Safari
× × × × × × × × ×

xianxu-worker

介绍

本项目通过webview实现的多线程,所以目前只支持在app中使用

快速入门

引入文件

import {Worker} from '@/uni_modules/xianxu-worker/js_sdk/index.js'

导入要在线程中执行的文件

Worker('_www/static/test.js')

import本地文件

importScripts('_www/static/test2.js');

或者通过worker.importScripts()方法导入

this.worker = await Worker('_www/static/test.js')

this.worker.importScripts('_www/static/test2.js')

注意:importScripts直接导入本地文件时需要带上_www,_www对应的是app的根目录,安卓9.0在文件内无法执行importScripts导入的本地文件,需要外部调用this.worker.importScripts('_www/static/test2.js')导入本地文件

由于模拟器限制,使用importScripts导入内部文件只有真机运行有效

启动线程,通过worker.start()启动

this.worker = await Worker('_www/static/test.js');
this.worker.start();

发送消息到线程中worker.postMessage(123)

this.worker = await Worker('_www/static/test.js')
this.worker.postMessage(123)

接收线程消息

worker.message = (e)=>{
        console.log(e)
    }

线程执行发生错误时

this.worker = await Worker('_www/static/test.js');
// 线程发生错误消息
this.worker.messageerror = (evet)=>{
    console.error(evet)
}

插件运行发生错误

this.worker = await Worker('_www/static/test.js');
// 发生错误
this.worker.error = (event)=>{
    console.error(event)
}

销毁线程worker.terminate(),使用完成后记得调用销毁,否则容易导致内存泄露

隐私、权限声明

1. 本插件需要申请的系统权限列表:

本地储存

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

许可协议

MIT协议

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问