欢迎光临,了解微信小程序开发,就上易用通!

微信小程序使用第三方库报错的问题

发布:2018-04-18 10:55浏览: 来源:网络 作者:cola

最近在学习微信小程序的开发,在一个练手项目中,需要使用一个第三方开源的库xmorse.js,在使用是调用了xmorse.js中的一个方法decode(),结果出现如下报错:

 

				
  1. WAService.js:3 thirdScriptError
  2. decode is not defined;at "pages/xmorse/xmorse" page
  3. lifeCycleMethod onLoad function
  4. ReferenceError: decode is not defined
  5. ......

后来查了一下微信小程序开发文档,发现在引入第三方库时需要暴露接口,而且第三方库内不能使用window等对象。

小程序开发文档Q&A

为什么脚本内不能使用window等对象?

页面的脚本逻辑是在JsCore中运行,JsCore是一个没有窗口对象的环境,所以不能在脚本中使用window,也无法在脚本中操作组件  所以自己又在网上寻找解决方法,最后发现了一种解决办法,具体是参考segmentfault上的一篇文章微信小程序开发实战——使用Immutable.js,照着上面自己慢慢的修改最终解决了这个问题

原始的库:

 

				
  1. !function (root, factory) {
  2. if (typeof module === 'object' && module.exports) {
  3. module.exports = factory(root); // nodejs support
  4. module.exports['default'] = module.exports; // es6 support
  5. }
  6. else
  7. root.xmorse = factory();
  8. }(typeof window !== 'undefined' ? window : this,
  9. function () {
  10. // Map of Morse code patterns to supported characters.
  11. ......

修改后的库:

 

				
  1. !function (global, factory) {
  2. module.exports = factory();
  3. }(this,
  4. function () {
  5. // Map of Morse code patterns to supported characters.
  6. ......

这样修改后就可以正常使用库函数了。






免责声明:本站所有文章和图片均来自用户分享和网络收集,文章和图片版权归原作者及原出处所有,仅供学习与参考,请勿用于商业用途,如果损害了您的权利,请联系网站客服处理。