用户
 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,登录网站

小程序社区 首页 教程 查看内容

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

Rolan 2017-5-15 00:24

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

最近在学习微信小程序的开发,在一个练手项目中,需要使用一个第三方开源的库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. ......

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

鲜花
鲜花
鸡蛋
鸡蛋
分享至 : QQ空间
收藏
原作者: 快乐的小码农 来自: 文章来源

相关阅读