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

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

葱子5年前 (2021-02-03)其他2424

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

相关文章

移动魔百盒(M301A)投屏设置技巧

家里装的四川移动宽带,送了一个移动的魔百盒机顶盒,这个盒子比较特殊,有非常多的限制:  1、只能连接到光猫的2/4lan口,接到其他接口(包括路由器的lan口)都会提示“公网接入控制”,完全用不了。 ...

gitbook常用插件及模板变量使用技巧分享

归纳整理了一些在gitbook中比较实用的一些插件和相关配置,记录如下: { "plugins": [//插件信息 "back-to-top-button",//回到顶部...

爱奇艺vip年卡会员+京东Plus年卡限时六折优惠 仅需118元

爱奇艺vip年卡会员+京东Plus年卡限时六折优惠 仅需118元

7月17日,爱奇艺再次联合京东Plus开启了限时六折的优惠活动,仅需118元就可以拿下爱奇艺的vip年卡加上京东Plus会员。 活动时间:7月17日起 爱奇艺商城开启爱奇艺联合会员促销,一次开通享双重权益,主要以黄金会员联合套餐为主,大...

实用教程:如何通过小程序APPID查询到对应的小程序名称

实用教程:如何通过小程序APPID查询到对应的小程序名称

最近遇到一个小问题,就是拿到了对方的小程序APPID,但是不知道去哪里查找这个小程序APPID对应的小程序名称叫什么。 带着这个问题,我去百度了一下,大致提供的解决方案有两种。 方法一:通过公众号的关联小程序功能可以通过公众号的关联小程...

实用教程:如何通过手机照片获取拍照时的定位位置信息

实用教程:如何通过手机照片获取拍照时的定位位置信息

现在很多的智能手机自带的相机程序都可以记录下拍照位置,在QQ、微信上使用原图进行发送时,会保留这些信息,如果不是使用原图的形式发送,这些信息就会丢失。 下面简单的给大家讲解一下如何查看图片的位置信息。 现在有了更简便快捷的方式:1、在微...

四川移动光猫改桥接,不影响IPTV使用

四川移动光猫改桥接,不影响IPTV使用

在安装移动宽带的时候,安装师傅默认就在光猫上进行了拨号。这样移动光猫不仅负责光电转换,还要负责路由器、IPTV、wifi这些功能。在使用移动宽带的过程中,某些时候总是莫名的出现断流的情况。所以给家里换了个小米的ax6路由器,使用下来整体性能...

发表评论

访客

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