当前位置:首页 > 其他 > 正文内容

cocos/laya/egret引入第三方js库报xxx not defined解决方案

葱子3个月前 (02-03)其他253

cocos/laya/egret都支持引入第三方的js库来支持更多的功能。

不过在引入js库后,打包为微信小程序等小程序平台应用时,总是报xxx not defined的问题。

问题分析:

这是因为cocos/laya/egret对小程序平台做了对应的适配,三方js库导出的对象都需要挂载到window对象下,才能作为全局对象使用。

解决方案:

在三方js库中添加window.xxx=xxx;

举例:

a.js中的内容为:
var a="hello world";

在cocos/laya/egret中引入后,在H5页面下可以正常使用,但微信小程序中报a not defined

修改为:

var a="hello world"; window.a=a;

实测:

可以正常使用,同时这种方法兼容H5/各种小程序和app。

优化:

以上方法简单粗暴,一般不会存在较大的问题。不过某些时候不太兼容js库本身对微信小程序环境的适配。需要通过判断运行环境做进一步的优化升级。
针对cocos/laya/egret做平台判断,当判断运行环境为cocos/laya/egret时,将对象挂载到window下。

var a="hello world"; if((typeof cc!=="undefined")||(typeof egret!=="undefined")||(typeof Laya!=="undefined")){window.a=a}

最后:

实际中引入的第三方js库并不会像文章中举例的那么简单,开发者需要仔细分析三方库代码,在合适的位置引入以上适配代码。

扫描二维码推送至手机访问。

版权声明:本文由葱子博客发布,如需转载请注明出处。

本文链接:https://www.aitiancheng.com/article-1577.html

相关文章

win10下快速访问华为荣耀路由器的USB移动硬盘

win10下快速访问华为荣耀路由器的USB移动硬盘

去年买荣耀笔记本送了一款荣耀路由器,型号是ws831,在路由器上刚好带了一个USB接口。之前一直没有时间来试试这个功能,最近想起来测试一下。 在测试过程中,发现在win10下访问荣耀路由器的USB移动硬盘有些问题。通过在华为花粉论坛...

可以为你提供这些服务:discuz网站维护、搬家、处理挂马、服务器环境配置

经常帮各种站长做discuz快照劫持的处理,也分享了很多相关的教程文章,你目前搜索discuz快照劫持相关的文章很多都是我分享的。 部分站长通过我的分析文章基本都能处理好快照劫持的问题。 相关文章汇总如下:https://www.ait...

网站维护案例展示页面

网站维护案例展示页面

案例一:家电论坛服务项目: 1、将jdunion.com、jd-bbs.com使用301全局跳转到jdbbs.com 2、为家电论坛主站申请SSL证书并部署到服务器,配置http 301跳转到https 3、为家电论坛上传苹果版app到苹果...

从事互联网工作多年的管理者,现在创业做文玩靠谱吗?

从事互联网工作多年的管理者,现在创业做文玩靠谱吗?

在互联网行业做技术产品负责人近7年,在这个行业10多年,现在月薪税后3W,但是感觉已经到瓶颈期了,挺喜欢文玩的,菩提,星月,玉石,琥珀什么的,春节期间跟哥商量过,能不能自己开个店,自己做老板,也跟北京的朋友商量过,基本没有支持的,自己也觉得...

解决:MySQL server PID file could not be found!

解决:MySQL server PID file could not be found!

MySQL启动报错ERROR! MySQL server PID file could not be found 翻译:MySQL服务器的PID文件无法找到! 可能的问题:mysql在启动时没有指定配置文件时会使用/etc/my.cnf...

我的2016书单

心理学-行为学:《怪诞行为学》 互联网运营:《增长黑客》 职场:《不会汇报工作,还敢混职场》 市场营销:《定位》、《影响力》...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。