Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
menu search
person
Welcome To Ask or Share your Answers For Others

Categories

http://www.makusi.cn/Public/j...
这个qiniu.min.js本身可用于普通html页面引用。

<script src="/Public/js/qiniu.min.js"></script>
<script>
   console.log(qiniu);  //引入即可获取qiniu.min.js中的对象 qiniu
</script>

调试结果如图
image
很明显可以看到获取到的对象 qiniu,它有很多方法可以用,例如qiniu.upload()。非常方便。支持分片上传,还支持显示进度。


但在小程序里面无法使用。小程序里面,如果要引入外部js,需要类似下面这样写法

// common.js
function sayHello(name) {
  console.log(`Hello ${name} !`)
}
function sayGoodbye(name) {
  console.log(`Goodbye ${name} !`)
}
module.exports.sayHello = sayHello
exports.sayGoodbye = sayGoodbye
?//在需要使用的文件中,使用 require 将公共代码引入
var common = require('common.js')
Page({
  helloMINA: function() {
    common.sayHello('MINA')
  },
  goodbyeMINA: function() {
    common.sayGoodbye('MINA')
  }
})

我解压发现qiniu.min.js本身就是个闭包,似乎还是个静态对象。
按小程序的写法,只是require,qiniu闭包本身没有执行。

问题:如何在小程序里面获取到qiniu.min.js中的对象 qiniu


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
314 views
Welcome To Ask or Share your Answers For Others

1 Answer

小程序应该是用的 CommonJS 标准,这个脚本是 AMD 标准,所以在这个脚本就绪前准备一个假的 AMD 环境来获取 qiniu 的值,然后按照 CommonJS 的方式导出,应该可以解决问题:

var qiniu = undefined;

!function(){
    var exports = {};
    var module = {};

    // 将脚本粘贴在此

    //qiniu = module.qiniu;
    qiniu = module.exports;
}();
module.exports.qiniu = qiniu;
exports.qiniu = qiniu;

脚本里我没看到七牛的版权声明,如果你的项目商业化并且要做大的话,需要找找人家的版权声明再确定是否使用,竞品尤其需要注意。


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
...