如何在流星上使用webshot

时间:2013-11-02 19:05:32

标签: meteor meteorite

我已经安装了来自:https://github.com/TimHeckel/meteor-webshot

的webshot包和meteor webshot智能包

在目录pacages / webshot / lib / webshot.js中有WEBSHOT对象的定义。 在默认的流星应用程序中,我想使用此对象来获取快照,如上面链接的第二步所示:

Template.hello.events({
'click input' : function () {
  var _image = "myscreenshot.png";
  var _res =  WEBSHOT.snap("http://google.com", "public/exports~/" + _image, {
    screenSize: {
        width: 300
        , height: 300
      }
    });

}

});

当我点击按钮时,我有一个例外: 未捕获的ReferenceError:未定义WEBSHOT。

命令:

  

流星列表

显示webshot包,我需要在哪里包含此包以使其正常工作?

3 个答案:

答案 0 :(得分:1)

WEBSHOT对象仅在服务器端可用。请参阅this line in package.js

要使用它,您需要在服务器上使用Meteor.methods创建方法,在其中使用WEBSHOT,然后从事件处理程序中调用此方法。

答案 1 :(得分:1)

Hubert OG是对的,这个软件包只是服务器端。

然而,它在5个月内没有更新,所以看起来它不是最新的Meteor的最新“链接器”,如果我记得很清楚,这个功能出现在0.6.5中。

您需要在本地packages目录中git克隆该包。 (你可能需要“流星删除”以前的包和“流星添加”新的包)。 然后修改package.js,使它看起来像这样:

Package.on_use(function (api) {
    api.add_files("lib/webshot.js", "server");
    api.export("WEBSHOT","server");
});

从Meteor 0.6.5开始,您需要明确指定将包中的哪些符号导出到全局命名空间,因为包代码是在闭包内执行的。

答案 2 :(得分:1)

我遇到了同样的问题所以我使用最新版本的node-webshot https://atmospherejs.com/bryanmorgan/webshot添加了一个新的Meteor包装器。

你应该能够使用它来实现它:

meteor add bryanmorgan:webshot

然后是与node-webshot相同的API:

webshot("http://google.com", "/tmp/google.png", function (err) {
    // screenshot saved to /tmp/google.png
});