k***@hotmail.com
k***@hotmail.com
  • 发布:2017-06-22 15:23
  • 更新:2019-08-16 15:33
  • 阅读:2112

如何在使用Web Worker启动的js线程中调用Native.js

分类:Native.js

在我的项目中,我会使用Native.js连接本地蓝牙并持续获取数据。为了不影响前端页面的性能,希望使用Web Worker启动一个独立的js线程,通过postMessage的方式与前端页面交互数据。

然而,Web Worker线程启动后,在执行Native.js相关代码时程序抛出异常:

Uncaught ReferenceError: plus is not defined (提示: 请在plus ready后再调用plus api)

因为Web Worker线程不提供window / document等全局变量的访问,所以请问如何在这种情况下使用Native.js ?

2017-06-22 15:23 负责人:无 分享
已邀请:
移动达人

移动达人

1。这个等plus ready准备好后,再创建线程吧。

2.线程里面的程序只负责采集数据,然后发给外部接口。(线程中不能操作DOM对象,这个是浏览器内核限定的,无法突破。不明白网上看文档。)

3.外部接收数据后,再转换数据操作dom等。大概就这个样子。

  • k***@hotmail.com (作者)

    已经是在plus ready之后创建的线程。但Web Worker使用的线程跟UI的线程并不能共享plus对象

    2017-06-22 16:39

t***@163.com

t***@163.com

我也碰到这个问题了,想在Worker中调用Native.js 但是提示没有plusready。同样也是在主线程plusready之后才创建Worker的、

查了一下Plusready好像是说,不能在不具备plus或者mui的环境下调用。我们创建的Worker中和主网页已经没有关系了,连Window和docment对象都没有了,

不知道怎么解决这个问题,

z***@163.com

z***@163.com

worker中无法访问window, document对象,plus是属于window的一个对象属性,自然也无法访问到了。

我目前也遇到这个问题了。

我的世界什么样

我的世界什么样 - 我的世界只有我

请求有解决吗

该问题目前已经被锁定, 无法添加新回复